2012-01-30 1 views
2

데이터베이스에서 축구 데이터를 표시/추가/삭제/편집하는 REST 서비스를 만들려고합니다. 나는 이것을 어떻게 할 수 있었는지에 대한 디자인을 만들었지 만, 매우 복잡해졌습니다.RESTful인가요? 토닉 사용

예를 들어 목표가 채점되면 어떤 URL을 호출해야합니까?

질문은 올바른 방향으로 가고 있습니까? 아니면 다른 방향으로 조언을 구합니까?

enter image description here

답변

2
  • 내가 PUT 항상 편집에 사용되어서는 안된다는 사실을 제외하고 Abhiniav's answer에 동의 :

    유래는 여기에 꽤 자세한 설명이 있습니다. 귀하가 sending the new complete resource 일 때만 사용해야합니다. 수정 또는 부분 전송은 POST를 사용하거나 덜 알려진 PATCH을 사용하십시오.

  • Safe and Idempotent methods을 읽는 것이 유용 할 것입니다.
  • 목표 수를 업데이트하는 데 POST 또는 PATCH를 사용하는 것이 가장 일반적입니다 (/{country}/team/{team_id}/goals).
  • REST가 아닌 가장 큰 이유는 서비스를 검색 할 수 없기 때문입니다. HATEOAS에서 읽으십시오.
+0

위대한, 그리고 추가 정보 주셔서 감사합니다! – nhaarman

+0

멱등수가 아니고 setter-semantics가있는 부분 업데이트가 있기 때문에 편집을 위해 POST를 사용하지 않는 것이 좋습니다. PATCH를 사용하는 것은 PUT만큼 널리 퍼지지는 않지만 부분 편집을위한 최상의 조언입니다. – mtsz

+0

@mtsz 프로토콜에 정의 된 POST는 멱등 원 (Idempotent)이 아니지만, 멱등 원 (Idempotent) 부분 변경 POST를 구현할 수 없다는 것을 의미하지는 않습니다. 나는 당신에 대해 PATCH에 관해서 확실히 동의한다. 그래서 나는 그것을 언급한다. –

1

모두는 PUT 및 POST 전환해야하는 것을 제외하고 당신의 구조에서 잘 보인다. PUT은 레코드 업데이트/생성 모두에 사용할 수 있습니다. 리소스 ID를 미리 알고있는 경우 PUT을 사용할 수 있습니다.

ID는 알지 못하는 새 리소스를 만들 때 POST가 사용됩니다. PUT vs POST in REST

+0

이 예 (http://blog.bucket440.com/?p=209)는 실제로 POST를 사용하여 PUT을 업데이트하고 생성합니다. – nhaarman

+0

그것을 보지 못했습니다. 나는 PHP 기반의 REST 프레임 워크를 사용하지 않는다. 대부분은 잘못된 구현을 가지고 있습니다. :) – Abhinav