api-design - 예제 - 오픈 api 구축




좋은(웹) API를 어떻게 구축해야합니까? (4)

웹 앱용 API를 만들려고합니다. 사람들이 좋은 습관으로 제안 할 수있는 것에 관심이 있습니다.

이미 버전 관리를하고 있습니다 (버전 1은 시스템의 특정 부분 만 제어 할 수 있지만 버전 2는 더 많이 제어 할 수 있지만 버전 1과 호환되지 않는 인증이 수행되는 방식에 변경이 필요할 수 있음). 사람들이 로그인하는 데 사용하는 표준 사용자 이름 / 비밀번호와 인증이 다릅니다 (악의적 인 도구를 사용하는 경우 API가 허용하는대로 모든 것을 가장 할 수는 없습니다).

더 많은 아이디어가 있거나, 사용했던 API가 좋은 사이트의 예가 있습니까?


실제로 REST를 사용하는 방법에 대한 좋은 개요를 제공하는 RESTful 웹 서비스 책을 읽고, 몇 가지 확신을 가지고 지금 시작하기에 충분한 속도로 신속하게 시작하십시오. 기존 API를 보는 것보다 유용합니다. 디자인 선택과 절충에 대해서도 설명하기 때문입니다.


REST를 사용하십시오.

RESTful 웹 서비스 아키텍처는 구현하기 쉽고 의도 한대로 HTTP의 장점과 의미를 사용합니다. 웹과 마찬가지로 리소스 지향적입니다.

Amazon Web Services , Google 및 기타 많은 사람들은 자사 제품과 상호 작용할 수있는 REST API를 제공합니다.


1) 버전 번호를 매개 변수로 전달하는 대신 URL로 직접 가져 오면 각 버전 충돌로 API 네임 스페이스의 구성을 자유롭게 변경할 수 있습니다.

2) 가능하면 단순하고 가볍게 URL 재 작성 규칙을 유지하고 가능한 한 아름답게 꾸미십시오.

3) 각 응답에 대해 찾을 수있는 최상의 HTTP 상태 코드를 항상 찾습니다 (예를 들어, 202와 207을 잊지 마세요).

4) 파시스트 매개 변수 검증 논리 및 유익한 오류 메시지를 구현합니다.

5) 매개 변수 대신 적합한 HTTP 요청 헤더를 사용하십시오 (예 : 클라이언트가 응답의 원하는 데이터 형식을 지정할 수 있도록 허용).

6) 다른 클라이언트 잠재 고객이 사용하는 URL이 URL 트리의 "루트"근처에서 분리되도록 "명사"를 구성하십시오. 이렇게하면 필요한 경우 다른 사용자를 위해 다양한 인증 메커니즘을 적용하기가 쉬워집니다. 다른 서버에 대한 URL 트리의 다른 부분).

7) API와 동일한 도메인에서 일반 웹 페이지를 제공하고 동일한 인증 자격 증명을 사용하는 경우 XSRF 취약성을 피하기 위해 API 요청에 X-Requested-With 헤더가 필요합니다.


입증 된 API를 살펴 보겠습니다.

  1. YouTube API
  2. Twitter API

이 API가 "좋은"API인지 여부에 대한 많은 논쟁이 있지만, 성공을 입증했다고 생각하며 사용하기 쉽습니다.





api-design