私はweb apiで新しく、私も非常に高度な開発者ではありません。私は、単一のアクションに対して複数のhttp動詞を使用する方法を示す記事を見てきました。WebAPI:シングルアクションで複数のhttp動詞を使用できます
私はアプローチが良いことを知りたいです。さもなければ、誰かが単一のアクションのために複数のhttp動詞を使用するときに悪化するものは何ですか?彼らは人々を混乱させることが単一のアクションに対して複数のルートを作成するため、単一のアクションに対して複数のHTTP動詞を使用するシナリオ人々の種類では、このエリアhttps://www.codeproject.com/Articles/1005485/RESTful-Day-sharp-Security-in-Web-APIs-Basic#_Toc423441907
[GET("allproducts")]
[GET("all")]
public HttpResponseMessage Get()
{ }
[GET("productid/{id?}")]
[GET("particularproduct/{id?}")]
[GET("myproduct/{id:range(1, 3)}")]
public HttpResponseMessage Get(int id)
{ }
[POST("Create")]
[POST("Register")]
public int Post([FromBody] ProductEntity productEntity)
{ }
[PUT("Update/productid/{id}")]
[PUT("Modify/productid/{id}")]
public bool Put(int id, [FromBody] ProductEntity productEntity)
{ }
// DELETE api/product/5
[DELETE("remove/productid/{id}")]
[DELETE("clear/productid/{id}")]
[PUT("delete/productid/{id}")]
public bool Delete(int id)
{ }
1)から取られた
コード.... ...下に近づくべきかどうかは良いですか?
[GET("productid/{id?}")]
[GET("particularproduct/{id?}")]
[GET("myproduct/{id:range(1, 3)}")]
public HttpResponseMessage Get(int id)
{}
2)PUTとDELETEは異なる動詞です。どのように単一の行動のために異なる動詞を使用することができます....それは正しいアプローチです。
[DELETE("remove/productid/{id}")]
[DELETE("clear/productid/{id}")]
[PUT("delete/productid/{id}")]
public bool Delete(int id)
{
if (id > 0)
return _productServices.DeleteProduct(id);
return false;
}
上記のコードの賛否両論を明確にして詳細を確認してください。ありがとう
1)複数の動詞はありません(すべて同じですが複数のルート)2)APIの開発者および/または契約によって異なります。それは間違っているか間違っている可能性があります –
記事の要点は、可能なことを示すことです。あなたは、開発者として、それを使うかどうかを決める必要があります。 –
@SirRufo複数のhttp動詞DELETEとPUTを使用して、削除と呼ばれる単一のアクションを使用することを確認してください –