LoginSignup
5

More than 5 years have passed since last update.

ASP.NET Web APIを業務アプリ開発で使う時の勘所

Posted at

ASP.NET Web APIの勘所

日本マイクロソフト株式会社の赤間さんのセッションを見た時のメモ

Web APIというとRESTful型、JSONエンコードというイメージがあるがRPC型、XMLエンコードもいいよ

サーバー・クライアント間の通信

RESTfulスタイル

エンティティオブジェクトのCURD処理の形で実装

RPCスタイル

処理伝票の送信と結果伝票の受信の形で実装

ASP.NET Web APIのサンプルでRESTfulなサーバーAPIを開発するというのをよく見かける

ASP.NET Web APIはRESTfulスタイル用の技術ではない!

マッピングルールを変更するとRPCスタイルも使える
ASP.NET Web APIの既定のマッピング

  • URL:コントローラクラス名
  • HTTP Verb:メソッド名
HTTP Verb 意味
GET READ
POST CREATE
PUT UPDATE
DELETE DELETE

JSON vs XML

JSONを使うよりXMLを使った方が使い勝手がよい場合もある

JSONはシリアル化/デシリアル化で問題がでやすい

なぜ?

JSONでは標準で扱えるデータ型が限られている
JSONの型:整数型、浮動小数点型、文字列型、boolean、配列、オブジェクト、null以外で問題が出やすい
問題が出る例:日付型、byte[]型など

ASP.NET Web APIでシリアル化形式を変更する

VB.Net
Dim httpClient = New System.Net.Http.HttpClient
httpClient.DefaultRequestHeaders.Accept.Add(New Net.Http.Headers.MediaTypeWithQualityHeaderValue("text/xml"))

※参照設定にSystem.Net.Httpが必要

WCFとASP.NET Web APIの本質的な違い

WCF ASP.NET Web API
API設計スタイル RPC型のみ 自由(RESTfulなど)
メッセージフォーマット SOAPのみ 自由(JSONなど)
通信プロトコル 自由(HTTP、TCP/IPなど) HTTP
  • WCFはAPIスタイルが限定されているが通信方式は自由
  • ASP.NET Web APIは通信方式が限定されているがAPIスタイルは自由

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5