2017-04-03 5 views
0

, Artifactory의 REST API는 반환합니다Artifactory : 새 (로컬/원격/가상) 저장소를 작성하는 <code>PUT</code> 요청을 할 때 REST API 나쁜 디자인은

  • 상태 200를 생성이 성공하면
  • 응답 내용의 키워드 already exists와 상태 400 리소스가 이미 때 일을 수행

그러나을 존재하는 경우 사용자/그룹/권한에 전자 동일한 동작은, 응답

  • 존재 또는
  • 단지

응답 콘텐츠는 동일 생성 된 자원 여부 두 경우 201 인 !

이것은 나쁜 API 디자인이 아닙니까?

답변

0

REST API의 차이점은 무엇입니까?

리포지토리 생성이 PUT 호출에 대해 "리포지토리 생성"으로 표시되고 POST를 사용하여 업데이트 리포지토리가 완료됩니다. 에서

사용자가/그룹은/권한의 REST API는, PUT을 사용하여, "만들거나 사용자 교체"당신이 JFrog Artifactory Wiki page for REST API에서 볼 수하는 데 사용됩니다.

Artifactory에 사용자가 있어도 REST API 명령에 대한 응답으로 201을 얻으면 기존 사용자를 "대체"합니다.

+0

예. 일치하지 않습니까? 클라이언트가 보안 리소스가 이미 존재하는지 여부를 어떻게 알 수 있습니까? IMHO API는 모든 리소스 CRUD 작업에서 공통/일관된 접근 방식을 유지하고 일관된 매핑 (예 : '201'-> '성공적인 생성', '40x'-> already exists 등)이 있어야합니다. 또한 기존 저장소 자원의 경우 사용 된'잘못된 요청 '에 해당하는'400'은 너무 일반적이라고 생각합니다 (다른 여러 가지 이유로'잘못된 요청'을 유발할 수 있음). '403'이나'409'가 더 적절 해 보입니다. – pkaramol