2014年10月05日

WebAPIの基礎1

ASP.NET WebAPIでは個々のAPIをコントローラを作ってリクエストを処理する。

基本的な実装は以下のようになりそうだ。
世間的には珍しい、VBソースで。


Imports System.Net
Imports System.Web.Http

<RoutePrefix("api/sample")> _
Public Class SampleController Inherits ApiController

<Route("{id}")> _
Public Function Gets(ByVal id As Integer) As IHttpActionResult
'なんらかの処理
Return Ok(id)
End Function

<Route("name/{id}")> _
Public Function GetNames(ByVal id As Integer) As IHttpActionResult
'なんらかの処理
Return Ok(id + 10)
End Function

End Class


うまく、REST設計ができれば、こんな風にならないかもしれないが、
単純に考えると、1つのコントローラーで似たようなURLで複数のGETメソッドを実装したりするだろう。
上記では、/api/sample/1と/api/sample/name/1。
その場合、属性ルーティングを使うとシンプルにできる。

使わないと、アクセス時に
「要求に一致する複数のアクションが見つかりました」というエラーになる。
同じI/Fのメソッドが存在すると、どちらにマッピングすればよいか分からないからだ。
コンパイル時に検出できると助かるんだけど、さすがにそこまでの機能はない。

個々のメソッドにRoute属性を付加して、URLの一部を明記しておくと、
リクエスト時に該当するメソッドが呼び出される動きになる。
さらに、RoutePrefix属性で共通部分を定義できる。

これだけ理解すれば、正常ケースのGETメソッドについては、あとは返す内容だけ。
…で、いいんですかね??

少し参考にしました。
http://www.atmarkit.co.jp/ait/articles/1312/16/news056.html
posted by Thoughter at 12:10| Comment(0) | TrackBack(0) | ASP.NET | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。