2016-10-07 4 views
0

웹 API (REST)를 사용하여 데이터베이스에서 새 항목을 작성 (POST 메소드)하는 데 대한 공통 규칙 또는 우수 사례는 무엇입니까? POST 메서드의 본문에 식별자가 있어야합니까?웹 API : POST 메서드 본문에 식별자가 있어야합니까?

public HttpResponseMessage Post(AddressModel addressModel) 
{ 
    using (var context = new DbContext()) 
    { 
      if (context.address.Any(y => y.id == addressModel.id) 
       throw new Exception("Item already exist"); // or return BadRequest 
      ... 
    } 
} 

식별자없이 : 식별자와

public HttpResponseMessage Post(AddressModel addressModel) 
{ 
    if (addressModel.id != null) 
     throw new Exception("identifier cannot be set"); // or return BadRequest 

    using (var context = new DbContext()) 
    { 
      addressModel.id = GetNewId(); 
      // GetNewId generate the next correct if from data 
      // from context.address.last ... 
      ... 
    } 
} 

물론 첫 번째 솔루션은보다 효율적이기 때문에 그냥 아무 정답이없는 말해 줄 수 (downvoting 전)

이 경우 또는이 경우와 다른 하나는 다른 이유로 더 좋습니다. 당연히 나는 나의 자신의 의견이 있고 이것은 나와 같은 경험이없는 사람들을위한 의견 질문이다. 그러나 경험이있는 사람들에게 나는 그들이 주저없이 논쟁의 여지없이이 질문에 답할 수있을 것이라고 확신합니다. 그래서 이것은 유창한 질문이 아니거나 제발 이유를 말해주십시오.

+0

ID 소비자는 귀하의 API를 어떻게 알 수 있습니까? 너는 말하고 있니? – Jasen

답변

0

개체를 만드는 경우 API가 고유 ID를 할당해야합니다. 그렇지 않으면 호출자는 API 작동 방식 (어떤 유형의 ID, 고유 한 값을 얻는 방법 등)에 대해 너무 많이 알아야합니다.

또한 호출자가 이후 작업을 위해 필요할 경우 할당 된 if를 반환 할 수 있습니다.