SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Scott Guthrie氏 Blog翻訳

ASP.NET Web API (パート1)

連載:ScottGu's Blog翻訳

  • X ポスト
  • このエントリーをはてなブックマークに追加

 本稿は、Scott Guthrie氏のブログを、氏の許可を得て、翻訳、転載したものです。米Microsoft社の副社長で、ASP.NETやSilverlightの開発チームを統率する氏のブログでは、次期製品を含む最新の技術をいち早く紹介しています。

  • X ポスト
  • このエントリーをはてなブックマークに追加

 原典:ASP.NET Web API (Part 1)

ASP.NET Web API(パート1)

 先日、ASP.NET MVC 4 Betaについてブログ投稿しました。ASP.NET MVC 4は、数多くの素晴らしい新機能をもたらす大きな更新になっています。中でも一番興奮している改善の1つが、『Web API』作成のサポートです。この新機能については、今後いくつかブログ投稿を行いますが、今回はその1回目になります。

Web API

 過去数年間、正式なサービスコントラクト(SOAPやWS*など)ではなく、プレーンなHTTPに公開されたサービスであるWeb APIが出現してきています。この方法でサービスを公開すると、広く様々なデバイスやクライアントプラットフォームで機能を統合したり、ブラウザ内からJavaScriptを使用してよりリッチなHTML体験を作成することが、簡単にできるようになります。大きなWebサイトではWeb APIが公開されており(例えば、Facebook、Twitter、LinkedIn、Netflixなど)、ここ数年の内に、接続デバイスの広がりや、さらにリッチなユーザー体験の要求が加速していくでしょう。

 ASP.NET Web APIでは、広い範囲のクライアント(JavaScriptを使用したブラウザから、モバイル/クライアントプラットフォーム上の通常アプリまで)からアクセスできる強力なWeb APIを簡単に作成できます。

 サポートには以下のものがあります。

  • 現代のHTTPプログラミングモデル:クリーンで、強く型付けされたHTTPオブジェクトモデルを使用して、Web APIのHTTPリクエストおよびレスポンスに直接アクセス/操作します。このHTTPプログラミングモデルをサーバー上でサポートするのに加え、どんな.NETアプリからもWeb APIを呼び出すために新しいHttpClient APIを利用できます。これにより、クライアント上でも同じプログラミングモデルをサポートします。
     
  • コンテンツネゴシエーション:Web APIにはコンテンツネゴシエーションのサポートがビルトインされています。これは、APIから返されるデータの正しいフォーマットを決定し、クライアントとサーバー間で情報をやり取りできるようにするものです。JSON、XML、フォームのURLエンコードについてはデフォルトでサポートしていますが、独自のフォーマットを追加したり、さらにはデフォルトのコンテンツネゴシエーション戦略を独自のものと置換することも可能です。
     
  • クエリの作成:Web APIでは、OData URL規約を通じたクエリを簡単にサポートできます。Web APIからIQueryable<T>の型を返す時、フレームワークは自動的にODataクエリのサポートを提供するので、ページングやソートの実装も簡単です。
     
  • モデルのバインディングとバリデーション:モデルのバインディングにより、HTTPリクエストからさまざまなデータを抽出したり、それらの情報をWeb APIアクションが使用できる.NETオブジェクトに簡単に変換したりすることができます。Web APIは、ASP.NET MVCがサポートする同じモデルバインディングおよびバリデーションの基盤をサポートしています。
     
  • ルーティング:Web APIは、ルートパラメータや制約を含むASP.NET MVCおよびASP.NET内でサポートされているルーティング機能をすべてサポートしています。またWeb APIは、デフォルトでスマートコンベンションを提供しているため、クラスやメソッドに属性を適用することなく、Web APIが実装されたクラスを簡単に作成できます。Web APIの構成は、完全にコードを通じて行われるので、configファイルはクリーンなままです。
     
  • フィルタ:Web APIでは、横断的なビヘイビアをカプセル化し、適用できるフィルタ(例えば、[authorization])を簡単に使用/作成できます。
     
  • テスト実行の改善:静的なコンテキストオブジェクトにHTTPの詳細を設定するのではなく、Web APIアクションでは、テストを非常に簡単にする2つの新しいHTTPオブジェクトであるHttpRequestMessageやHttpResponseMessageのインスタンスとやり取りできるようになりました。例えば、モックフレームワークを使用せずに、Web APIの総合テストができます。
     
  • IoCサポート:Web APIは、ASP.NET MVCにより実装されるサービスロケーターパターンをサポートしており、多くの異なるファシリティに対する依存性を解決できます。依存性をクリーンに解決するために、IoCコンテナまたはDependency Injectionフレームワークと簡単に統合できます。
     
  • 柔軟性のあるホスティング:Web APIは、(ASP.NET MVC および Webフォームベースのアプリケーションの両方を含む)どんなタイプのASP.NETアプリケーション内でもホストできます。ASP.NET/IISを使用したくない場合、独自のプロセス内でもオプションでホスト/公開できるようにWeb APIサポートをデザインしました。これにより、使用する方法や場所に対して最大限柔軟に対応できます。

詳細について

 ASP.NET Web APIの利用方法についてのチュートリアルは、www.asp.net/web-apiで確認してください。

 ASP.NET MVC 4 講演のビデオ(36分間これについてカバーしています)で、私の講演およびASP.NET Web APIのデモも確認できます。

 次のブログ投稿で、新しいWeb APIの作成方法、この動作の基礎、クライアントから起動させるプログラミング方法をウォークスルーします。

 Hope this helps,

 Scott

 P.S. ブログ以外に、Twitterを使って簡単な更新やリンク共有を行っています。私のハンドル名は、@scottguです。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Scott Guthrie氏 Blog翻訳連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト Chica(チカ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Scott Guthrie(Scott Guthrie)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6460 2012/03/23 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング