1

私は非常に紛らわしいトピックのように見えるものについていくつかの研究開発を行っています。他のSOの質問もかなり読みましたが、私の質問は私が尋ねるのに十分なほどユニークであると感じています. 純粋な WebAPI を使用してアプリを開発したことはありません。

バックエンドがフロントエンド コードから完全に切り離された SPA スタイルのアプリを作成しようとしています。

私たちのサービスは、誰がアクセス/消費しているかについて何も知らないと仮定します:

WebAPI は、標準の MVC コントローラーを使用し、アクションの結果を介してデータを提供し、それを JSON に変換するのではなく、データを提供するための論理的なルートのようです。これは少なくとも私には MC 設計のように思えます...これは奇妙に思えますが、MVC が意図したものではありません。(お母さん見て…見えない)

action(y) 呼び出しの実行に関して、通常の規則と見なされるものは何ですか?

私の感覚では、WebAPI に対する私の理解は間違っています。

私がWebAPIを理解する方法は、CRUDの意味で使用されることを意図しているということですが、「InitialiseMonthEndPayment」のようなことをしたい場合はどうすればよいでしょうか.... InitialiseMonthEndPaymentControllerと呼ばれるWebAPIコントローラーを作成して実行する必要がありますPOST ... InitialisePayment と呼ばれる MonthEnd コントローラーに新しいアクションを追加できる MVC コントローラーとは対照的に、少し奇妙に思えます。

それとも、これにはデザインの観点からの考え方の転換が必要ですか?

このトピックに関するこれ以上のリンクは本当に役に立ちます.

4

2 に答える 2

2

サービスを RESTful にすることを計画している場合、コントローラーはリソースを表す必要があります。あなたの例では、リソースはPaymentであるため、コントローラーは と呼ばれPaymentControllerます。

同じコントローラに複数の POST メソッドを含めることができます。あなたのシナリオでは、アクション メソッドPostMonthlyPaymentなどを呼び出します。URL (ルーティング) は次のようにhttp://server.com/api/payment/monthlyなり、本文 (JSON を想定) は次のようになります。

{
   user: user@internet.com,
   month: 10,
   year: 2013,
   // any additional data
}

支払いが成功した場合は、HTTP エラー コード 201 と URL を含む Location HTTP ヘッダーを支払い GET メソッドに返すことをお勧めします。本文のデータが間違っている場合は、エラー コード 400 を返します。ユーザーが既に支払いを行っている場合は、競合コード 409 が機能します。

于 2013-10-30T13:58:03.850 に答える