Facebook, Twitter 등과 같은 많은 웹 API에 대해 들었습니다. 타사 API가 데이터를 액세스하고 조작하는 데 도움이됩니다. 웹 API의 작동 방식을 알고 싶습니다. 웹 API의 기본 사항은 무엇입니까?
사람들이 사이트에 액세스하거나 업데이트 할 수 있도록 내 사이트에 대한 API를 만들려면 무엇을 시작해야합니까?
Facebook, Twitter 등과 같은 많은 웹 API에 대해 들었습니다. 타사 API가 데이터를 액세스하고 조작하는 데 도움이됩니다. 웹 API의 작동 방식을 알고 싶습니다. 웹 API의 기본 사항은 무엇입니까?
사람들이 사이트에 액세스하거나 업데이트 할 수 있도록 내 사이트에 대한 API를 만들려면 무엇을 시작해야합니까?
답변:
가장 간단한 방법으로 누구나 URL, 매개 변수 및 효과에 대한 정보를 호출하고 게시 할 수있는 일련의 GET / POST 요청을 만듭니다. 읽기 전용 작업에 대한 GET 요청 및 서버의 데이터 를 변경하는 항목 에 대한 POST 요청 .
필요한 경우 인증 시스템에 추가하면 간단한 웹 API가 있습니다.
웹 API는 단지입니다 인터페이스 표준을 통해 시스템 (예 : 사이트 등)에 액세스 할 수 있도록 HTTP 요청 방법 . 데이터 자체는 일반적 으로 처리하기 쉽도록 일부 표준 형식 (예 : JSON 또는 XML ) 으로 래핑됩니다 .
다음은 'TextWise'에 대한 웹 API 예입니다.
실제로 회사 가상화 플랫폼을위한 API를 개발하고 있습니다. 몇 가지 다른 방법으로 문제를 해결할 수 있지만 내가 좋아하는 (그리고 사람들이 이해할 수있는 작업을 얻는 가장 빠른 경로)은 간단한 HTTP GET 요청을 사용하고 JSON 응답을 반환하는 것입니다.
내 URL은 다음과 같습니다.
domain.com/method/call/subcall?key=key&data=something
그런 다음 HTTP GET 변수를 분류하고 호출자가 원하는 것을 수행합니다. 내가 스택 교환 API 개발에 베타 사용자로 가입하는 가장 큰 이유 중 하나는 나는 그것이 엄청난 학습 경험이 될 것이라는 점을 알고 있었고,이었다 참으로 그것이 .
일반적으로 두 개의 JSON 인코딩 배열을 반환합니다. 하나는 result
기본적으로 호출이 성공했는지 말하고 오류 코드 / 오류 문자열을 제공합니다. 다른 하나는 보통 방금 호출 data
되며 그 내용은 해당 특정 호출의 문서에 설명되어 있습니다. 또한 GET 기반 API는 테스트 및 디버깅이 훨씬 쉽습니다.
SOAP / XMLRPC와 같은 다른 많은 형식이 존재합니다 .JSON을 선택하면 엄청나게 단순하고 자유롭게 선택할 수 있습니다.
예를 들어, 많은 필드 를 보내야하고 많은 GET 변수를 다루고 싶지 않다면, 이것을 할 수 있습니다 (PHP의 예)
$to_send = base64_encode(json_encode($some_array));
다른 쪽에서는 쉽게 해독되어 수십 개의 변수를 사용할 수 있지만 API를 통해 2-3 개의 GET 변수 만 허용합니다.
나는 단지 메소드와 호출을 짧고 간결하게 유지하려고 노력하고 각 호출이 균일 한 '작업 또는 실패'응답을 반환하고 요청 된 데이터가 따르는 방식으로 설계합니다.
그것은 실제로 매우 광범위한 질문입니다. 가장 기본적인 의미에서, 웹 API 와 같은 클라이언트 가 웹 서버에 일종의 HTTP 요청을 할 때 웹 API가 작동 합니다. 서버는 해당 요청을 검사하여 사용자가 원하는 것을 파악한 다음 클라이언트가 원하는 것을 얻기 위해 검사하는 일부 형식 (예 : 페이지)으로 데이터를 반환합니다. 이것들은 웹 API가 공통적으로 가지고있는 유일한 것입니다. 이것이 실제로 귀하의 질문에 대한 답변이 아니라는 것을 알고 있지만 질문이 너무 광범위한 이유를 밝히고 싶었습니다.
클라이언트가 요청을 형식화하거나 서버가 응답을 형식화 할 수있는 모든 종류의 방법이 있으므로 클라이언트와 서버가 이해하기 위해서는 클라이언트와 서버가 몇 가지 기본 규칙에 동의해야합니다. 일반적으로 말하자면 요즘에는 이런 종류의 물건에 사용되는 두 가지 매우 일반적인 스타일이 있습니다.
RPC (원격 프로 시저 호출)
RPC 스타일 API에는 일반적으로 전체 API에 대해 하나의 URL 만 있습니다. 수행하려는 작업에 대한 정보가 포함 된 문서를 POST하여 호출하면 서버는 원하는 작업을 수행 한 문서를 반환합니다. 일반적인 컴퓨팅 용어에서 요청 문서는 일반적으로 함수 이름과 일부 인수를 갖습니다.
이 스타일의 API에 대한 일부 표준에는 XML-RPC 및 SOAP가 포함됩니다. 이러한 표준은 작성중인 함수 호출을 설명하거나 전체 API를 설명하는 데 사용할 수있는 형식을 작성하려고합니다.
REST (Representational State Transfer)
REST 스타일 API에는 API에 대한 URL이 네임 스페이스 ( 서버 또는 서버 내에 많은 다른 오브젝트가있는 폴더)가 없으며이 네임 스페이스 내의 모든 URL이 일부가됩니다. API의. 오히려 당신이 API를 사용하려는 서버를 말하는 것보다 URL은 당신이 API를 사용하고 싶은 서버 지시 에를 . 그런 다음 HTTP 메소드와 요청 본문을 사용하여 GET (이미 존재하는 항목 검색), POST (새 항목 작성), PUT (이미 존재하는 항목 바꾸기) 또는 해당 오브젝트 에 대해 수행하려는 작업 을 설명합니다. 삭제 (이미 존재하는 것을 제거) 사용할 수있는 몇 가지 다른 동사가 있지만 가장 일반적인 동사입니다.
지금까지 REST의 표준 형식에 대해서는 언급하지 않았습니다. 이론적으로는 거의 모든 형식을 사용할 수 있습니다. HTTP는 이미 수행하고자하는 작업과 수행하고자하는 작업을 말하고 있기 때문에 요청 본문의 형식은 무엇이든 만들거나 바꿀 개체의 표현 일 수 있습니다. 그러나 실제로 REST 작성자는 가능한 모든 형식을 이해하기가 어려우므로 형식에 동의하는 경향이 있습니다.