Skip to content

MS_WebAPI

nishi_74322014 edited this page Aug 3, 2026 · 1 revision

WebAPI

概要

WebAPIに関する情報リンクを纏めています。

詳細

インターフェイス

SOAP

SOAP

  • XMLであり、古い。
  • 新規採用は、ほぼ、無い。

REST

REST

  • HTTPメソッドのリクエストと、
  • JSONXMLのレスポンス

Swagger (OpenAPI)

Swagger (OpenAPI)

  • REST の JSON 系を発展させた。
  • パラメータ付きの URL テンプレート+HTTP へのカスタム マッピング

gRPC

gRPC

  • バイナリ電文(Protocol Buffers
  • IDLがあるらしい。
  • 互換ライブラリが揃っている。

GraphQL

GraphQL

  • データクエリとデータ操作をするリクエスト。
  • 上記の結果を返す、JSON のレスポンス
  • 実装は、Schemaクラスを定義し、Queryクラスに実装する。

OData

OData

  • XML、XML-RPC版の GraphQL 的な位置付け。
  • Dynamics(MS_Dynamics.md)系で採用されている(Graph API)。

何を選択するか?

  • 好きなのを使えば良いと思いますが、以下(参考)を見て、自分は、

    • 「リクエストは、POST(form or json)
    • レスポンスは、JSON で良くない?」

    派だと思いました(≒ JSON-RPC)。

    • REST 設計に悩むようであれば、拘らず、JSON-RPCで造ってしまえば良い。
      (「WWWブラウザから、URL直打ちのGETでJSONレスポンスを確認したい。」などの要件が無ければ)
    • 何故か?と言うと、以下の辺りが根拠になっていると思います。
      • 相互運用可能なBeanが生成される仕組みがアレばイイかな?と思います。
      • コレは、RFCなどで標準化はされていませんが、JSONパーサーの仕様が、
        言語間で似通っているため、安定して出来る芸当になっているのだと思います。
  • 参考

ペイロード

その他

ツール

.NET開発

補足(最新化): .NET 側の現在の標準は、

  • REST / OpenAPI 系は ASP.NET Core の Minimal API または MVC (Web API)。 Swashbuckle は .NET 9 以降テンプレートから外れ、Microsoft.AspNetCore.OpenApi が標準。
  • RPC 系は gRPCGrpc.AspNetCore)。
  • GraphQL はサードパーティの HotChocolate が事実上の標準。
  • ASP.NET Web Service(.asmx)と WCF はレガシー扱い。

Tags: プログラミング, 通信技術, .NET開発, .NET Core, ASP.NET, ASP.NET Web API, ASP.NET SPA

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally