:GET
を使用して
:
POST
を使用して
/companies/<company_id>/add-employee/<employee_id>/
/employees/<employee_id/add-company/<company_id>/
私はいくつかの選択肢を考えることができますパスの "id"。また、私は言葉の単数形を好むが、それはおそらく私だけです:
/company/
/company/<company_id>/
/company/<company_id>/employee/
/employee/
/employee/<employee_id>/
URIはそれほど実際には関係ありませんし、適切に行わとき、後の任意の時点で変更することができます。つまり、すべてのURIは、クライアントにハードコードされているのではなく、リンクされています。従業員のいくつかの表現で
PUT /employee/123
:限り従業員を追加するように、私はおそらく、上記で定義された同一のURI、およびPUT
方法を使用する
。それはidempotentなのでPUT
が好きです。これは、操作が失敗した場合(タイムアウト、ネットワークエラーが発生した場合など)、前の操作がサーバー上で「本当に」失敗したかどうかを確認せずに操作を繰り返すことができることを意味します。 PUT
は、サーバー側でいくつかの追加作業が必要であり、(フォームなどの)適切にリンクするいくつかの追加作業が必要ですが、より堅牢な設計を提供します。
代わりに、あなたは、本体として、従業員の表現で
POST /employee
を使用することができます。これは保証を提供するものではありませんが、実装が簡単です。
GET
を使用して従業員(またはそのようなもの)を追加しないでください。これは、HTTP Specification for the GET methodに対して行われ、純粋な情報検索方法でなければならないと述べています。