더 표준화 된 데이터 인터페이스를 사용하여 편안하고 API 디자인

평안한 API는 무엇인가

나머지는 스타일이 아닌 표준입니다. 그것은 클라이언트와 서버의 형태로 상호 작용을 의미합니다. 핵심 아이디어는 클라이언트가 전송하는 데이터 조작 지시 "동사 + 개체"구조입니다이다.

편안한 API는 여러 가지 기능을 가지고 있습니다 :

참고 자료 : 인터페이스 이름은 오히려 getAllAnimals 등보다는 동물원, 동물, 수 있습니다
: HTTP를 사용 동사 GET/PUT/POST/DELETE/PATCH/HEAD/OPTIONS가 아니라 단지 우리의 일상 사용하는 것보다 GET과 POST

디자인 원칙

인터페이스는 명사로 명명 될 때에 1, 동사 때문에 자원 인터페이스 동작에 의해 사용되어서는 안된다.
관리를보다 직관적 버전 반복 도움이됩니다, URL에 버전 번호를 추가합니다
https://www.rgc.com/v1/
는 HTTP 동사에 의해 표현되어야 작동 자원의 유형 3.

  • / 동물원을 GET : 목록 모든 동물원
  • POST / 동물원 : 새 동물원 만들기
  • GET / 동물원 / ID : 지정된 동물원에 대한 정보를 획득
  • PUT / 동물원 / ID : 업데이트 지정된 동물원 (정보 동물원 모두 제공)
  • DELETE / 동물원 / ID : 동물원을 삭제
  • GET / 동물원 / ID / 동물 : 주어진 동물원에서 모든 동물
  • DELETE / 동물원 / ID / 동물 / ID : 지정된 특정 동물 동물원을 삭제

4, HTTP 방법 각 리소스 작업 CURD

  • 서버 (하나 또는 그 이상)에서 자원을 제거합니다 (SELECT)를 가져옵니다.
  • POST는 (CREATE)을 : 서버 상에 새로운 자원.
  • PUT (UPDATE) : 서버에서 (변화에 클라이언트가 제공하는 데 필요한 리소스 후) 리소스를 업데이트합니다.
  • PATCH (UPDATE) : 리소스 업데이트 서버에서 (클라이언트가 제공하는 속성을 변경합니다).
  • DELETE (삭제) : 서버에서 자원을 삭제합니다.

이 명사이기 때문에 5, 복수의 URL는, URL, 당신은 복수 또는 단수를 사용해야합니까?

이것은 통일 된 요구 사항은 없지만, 일반적인 작업은 분명히 복수가 있어야한다 (모든 기사를 읽기) 등 GET / 기사 등의 컬렉션을, 읽는 것입니다.

더 나은 GET / 기사 / 2 이상의 같은 GET / 기사 등 일관성, 제안 된 사용 복잡한 URL, / 2을 위해서.

6, 피할 다단계 URL

일반적인 상황은 쉽게 멀티 레벨 URL을 작성하는 것입니다, 그래서 자원은 일부 기사의 저자에 대한 접근로, 멀티 - 레벨 분류 할 필요가 있다는 것입니다.

GET / 저자 / 12 / 카테고리 / 2

이 URL은 확장에 도움이되지 않습니다, 의미는 의미를 이해하기 위해, 잠시 동안 자주 위해, 명확하지 않다.

더 나은 아직, 첫 번째 수준뿐만 아니라, 다른 수준의 사용 쿼리 문자열 표현입니다.

GET /authors/12?categories=2

여기에 또 다른 예를 들어, 쿼리 게시 된 기사입니다. 당신은 다음의 URL로 설계 될 수있다.

GET /articles/published

훨씬 더 나은 쿼리 문자열 표현.

GET /articles?published=true

문제

레코드가 다양한 작업에있을 경우 1, 그것을 어떻게 할까?
두 가지 방법이 있습니다 :

  • 첫 번째
POST /datas/1?action=reportError
POST /datas/1?action=mark
POST /datas/1?action=assign
  • 두 번째
POST /datas/1/reportError
POST /datas/1/mark
POST /datas/1/assign

분명히 두 가지 방법 위의 더 나은 두 번째 것

2, 클라이언트 인증 사용자 이름이나 전화가있는 경우, 어떻게 설계?
그것은 그러한 설계 될 수
GET /users/{userName}?action=check체크 사용자 이름 동작,

참고 읽기

http://www.ruanyifeng.com/blog/2018/10/restful-api-best-practices.html

추천

출처www.cnblogs.com/fozero/p/12115848.html