---
# System prepended metadata

title: gRPC MagicOnion 通信インターフェイスの戻り値に `UnaryResult` を強制する理由 2021-09-15
tags: [MagicOnion, gRPC, UnaryResult]

---

---
lang: ja-jp
breaks: true
---
# gRPC MagicOnion 通信インターフェイスの戻り値に `UnaryResult` を強制する理由 2021-09-15

> http://neue.cc/2017/04/06_551.html
> 面倒くさいのは UnaryResult<T> を返さなければならないところ。そのため UnaryResuylt() というヘルパー関数を読んで包んだのをリターンする羽目になってます。これが地味に面倒くさい。return x + y; って書きたいじゃん、って。
>
> で、MagicOnionがUnaryResultを強制するには理由があって、多くの場合は戻り値そのものだけで良いんですが、場合によってはレスポンスヘッダを取りたいとかステータスコードを取りたいとか、そういうのに対応する必要があるんですね。

## 戻り値に void は指定できないので `UnaryResult<Nil>` を使用する

## `UnaryResult<Task>`の方が良い？？

###### tags: `MagicOnion` `gRPC` `UnaryResult`
