REST API에 대한 자세한 설명 : 가장 일반적으로 사용되는 네트워크 서비스 기술을 이해하기 쉬운
"표현 상태 전송"을 나타내는 REST는 현재 가장 널리 사용되는 네트워크 서비스 기술입니다. 이름은 약간 추상적이지만 REST API는 본질적으로 두 개의 컴퓨터 시스템이 웹 브라우저 및 서버에서 공통적 인 HTTP 기술을 사용하는 방법입니다.
소프트웨어 개발에서 시스템 간 데이터 공유는 항상 기본 요구 사항입니다. 예를 들어, 자동차 보험을 구매할 때 보험 회사는 개인 정보 및 차량 정보를 얻어야하므로 차량 등록 기관, 신용 기관, 은행 및 기타 시스템에 데이터를 요청해야합니다. 이 모든 것은 보험 회사가 경쟁 정책을 제공 할 수 있는지 여부를 결정하기 위해 투명하게 실시간으로 수행됩니다.
API (Application Programming Interface)는 시스템 간 통신을위한 인터페이스를 제공하여 이러한 시스템 간 통신을 실현합니다. REST는 널리 채택 된 API 스타일 일 뿐이며,이를 사용하여 일관되고 예측 가능한 방식으로 내부 및 외부 당사자와 통신합니다. 이것은 우리가 우표, 주소 및 봉투가있는 편지를 어떤 방식으로 전달하고 읽을 수 있도록 편지를 보내는 데 비유 될 수 있습니다.
REST는 종종 소셜 미디어 응용 프로그램에서 계정 정보를 검색 및 업데이트하는 등 네트워크 시스템의 사람들 상호 작용에 사용됩니다.
키 포인트
REST API는 HTTP를 사용하여 컴퓨터 시스템 간의 커뮤니케이션을 용이하게하여 다양한 서비스 (예 : 차량 등록 기관, 신용 대행사 및 은행)가 실시간으로 데이터를 공유하여 자동차 보험 견적과 같은 서비스를 제공 할 수 있습니다.
REST API는 클라이언트-서버 아키텍처, 무국적, 캐싱 및 계층 시스템을 포함하여 네트워크 서비스를 만들기위한 일련의 제안을 따릅니다.
REST API의 구현 및 사용은 EndPoint 일관성, 버전 제어, 인증, 보안 및 Swagger 및 Postman 지원 개발 및 테스트와 같은 도구를 처리해야합니다.
REST API 예제
개방형 트리비아 데이터베이스에서 임의의 컴퓨터 문제를 요청하려면 브라우저에서 다음 링크를 엽니 다.
https://www.php.cn/link/bf13848f7f02f488b2e12e009a8b0df3
이것은 편안한 웹 서비스로 구현 된 공개 API입니다 (나머지 컨벤션을 따릅니다). 브라우저는 다음과 같은 답변과 함께 단일 JSON 형식 퀴즈 질문을 표시합니다.
http 클라이언트 (예 : CURL)를 사용하여 동일한 URL을 요청하고 응답을 얻을 수 있습니다.
HTTP 클라이언트 라이브러리는 JavaScript, Node.js 및 Deno의 Fetch 및 PHP의 를 포함하여 모든 인기있는 언어 및 런타임 환경에서 사용할 수 있습니다. JSON 응답은 기계를 읽을 수 있으므로 HTML 또는 기타 형식을 출력하기 전에 구문 분석 및 사용할 수 있습니다.
휴식 API 및 기타 기술
수년에 걸쳐 다양한 데이터 통신 표준이 지속적으로 개발되었습니다. Corba, SOAP 또는 XML-RPC와 같은 옵션이 발생했을 수 있습니다. 대부분 엄격한 정보 규칙이 있습니다.
REST는 2000 년 Roy Fielding에 의해 정의되었으며 다른 기술보다 훨씬 간단합니다. 표준이 아니라 편안한 웹 서비스에 대한 일련의 제안과 제약입니다. 여기에는 다음이 포함됩니다
클라이언트-서버 : 시스템 A는 시스템 B에서 호스팅하는 URL에 HTTP 요청을 발행하고 시스템 B는 응답을 반환합니다. 이것은 브라우저가 작동하는 것과 같은 방식입니다. 브라우저는 특정 URL을 요청합니다. 요청은 웹 서버로 라우팅되며 일반적으로 HTML 페이지를 반환합니다. 이 페이지에는 이미지, 스타일 시트 및 JavaScript에 대한 참조가 포함되어있어 추가 요청 및 응답이 발생할 수 있습니다.
stationeless : REST는 SANSTELESS입니다 : 클라이언트 요청에는 응답에 필요한 모든 정보가 포함되어야합니다. 다시 말해, 두 개 이상의 HTTP 요청은 순서대로 어떤 순서로도 동일한 응답을 받고 동일한 응답이 접수됩니다 (... API가 위의 퀴즈 예에서와 같이 임의의 응답을 반환하도록 설계되지 않는 한).
<:> 캐시 가능 : 응답은 캐시 가능하거나 캐시 불가능한 것으로 정의되어야합니다. 캐싱은 동일한 URL에 대한 응답을 재생할 필요가 없기 때문에 성능을 향상시킵니다. 특정 시간에 특정 사용자에 대한 개인 데이터는 일반적으로 캐시되지 않습니다.
수화 : 클라이언트를 요청하면 실제 서버, 프록시 또는 기타 중개자와 통신하는지 여부를 알 필요가 없습니다.
편안한 웹 서비스 생성
RESTFUL WEB SERVICE 요청에는 다음이 포함됩니다
엔드 포인트 URL. RESTFUL API를 구현하는 응용 프로그램은 도메인 이름, 포트, 경로 및/또는 쿼리 문자열 (예 : )을 포함하여 하나 이상의 URL 엔드 포인트를 정의합니다.
http 방법. 응용 프로그램 생성, 읽기, 업데이트 및 삭제 (CRUD) 작업에 해당하는 모든 엔드 포인트에 다른 HTTP 방법을 사용할 수 있습니다.
http 메소드
crud
작동
get
읽기
요청 된 데이터
Post https://mydomain/user/123?format=json
생성
새 레코드 생성
Put 또는 Patch
업데이트
기존 레코드 업데이트
삭제
삭제 삭제
기존 레코드
삭제
예 :
에 대한 요청 받기 에 등록 된 사용자 목록으로 돌아갑니다.
(아래 4. 참조)의 주요 데이터를 사용하여 ID 123을 사용하여 사용자를 만듭니다. 응답은 ID를 반환합니다.
사용자 업데이트 사용자 123 (아래 4. 참조) 에 대한 제목 데이터를 사용합니다.
에 대한 GET 요청이있을 때 사용자 123의 세부 사항을 반환합니다.
삭제 삭제
http 헤더. 인증 토큰 또는 쿠키와 같은 정보는 HTTP 요청 헤더에 포함될 수 있습니다.
주제 데이터. 데이터는 일반적으로 HTML 커밋과 동일한 방식으로 HTTP 본체를 통해 전송되거나 단일 JSON 인코딩 된 데이터 문자열을 전송합니다.
REST API 응답
응답 페이로드는 데이터, HTML, 이미지, 오디오 파일 등의 실질적인 콘텐츠 일 수 있습니다. 데이터 응답은 일반적으로 JSON에 인코딩되지만 XML, CSV, 간단한 문자열 또는 기타 형식에서도 사용할 수도 있습니다. 요청에서 리턴 형식을 지정할 수 있습니다 (예 : 또는 ).
적절한 HTTP 상태 코드도 응답 헤더에 설정해야합니다. 200 OK는 성공적인 요청에 사용되지만 레코드가 생성 될 때 생성 된 201도 반환 할 수 있습니다. 오류는 400 불량 요청, 404 찾기, 401 무단 무단 등과 같은 적절한 코드를 반환해야합니다.
캐시 제어 또는 만료 지시문을 포함한 다른 HTTP 헤더는 응답이 "오래된"것으로 간주되기 전에 캐시를받을 수있는 시간을 지정하도록 설정할 수 있습니다.
그러나 그러나 엄격한 규칙은 없습니다. 엔드 포인트 URL, HTTP 방법, 신체 데이터 및 응답 유형은 선호도에 따라 구현할 수 있습니다. 예를 들어, Post, Put 및 Patch는 종종 상호 교환 적으로 사용되므로 필요에 따라 레코드를 작성하거나 업데이트합니다. /user/123?format=json
REST API"Hello World "예
다음 node.js 코드는 Express Framework를 사용하여 편안한 웹 서비스를 만듭니다. 단일 엔드 포인트는 HTTP get 요청에 응답합니다. /user/123?format=xml node.js가 설치되어 있는지 확인하고 라는 새 폴더를 작성하십시오. 이 폴더에서 다음 내용으로 새
파일을 만듭니다.
run 명령 줄에서 run a ependencies를 가져오고 다음 코드로 파일을 만듭니다.
를 사용하여 를 사용하여 명령 줄에서 응용 프로그램을 시작하고 브라우저에서
를 열십시오. 다음 JSON은 GET 요청에 대한 응답으로 표시됩니다.
API는 또한 사용자 정의 이름을 허용하므로
return :
클라이언트 REST 요청 및 CORS
브라우저에서 url /hello/로 시작된 다음 HTML 페이지를 고려하십시오.
페치 호출은 동일한 API 요청을 수행하며 브라우저 콘솔은 예상대로
를 표시합니다. restapi
그러나 그러나 RESTFUL WEB SERVICE가 이제 웹의 package.json 도메인 이름으로 온라인 상태라고 가정 해 봅시다. 페이지 javaScript URL이 그에 따라 변경되지만 브라우저에서
를 열면 콘솔 오류가 <code>{
"response_code": 0,
"results": [
{
"category": "Science: Computers",
"type": "multiple",
"difficulty": "easy",
"question": "What does GHz stand for?",
"correct_answer": "Gigahertz",
"incorrect_answers": [
"Gigahotz",
"Gigahetz",
"Gigahatz"
]
}
]
}</code>를 반환합니다.
보안상의 이유로, 브라우저는 클라이언트 xmlhttprequest 만 허용하고 API 호출을 호출 페이지와 동일한 도메인에서 호스팅 할 수 있습니다. npm install 운 좋게도 CORS (Cross-Origin Resource Sharing)를 통해이 보안 제한을 우회 할 수 있습니다. SETTINSS HTTP 응답 헤더는 브라우저에 요청을 허용하도록 지시합니다. 위의 퀴즈 API에 표시된 것처럼 특정 도메인 이름 또는 index.js (모든 도메인 이름을 나타내는)로 설정할 수 있습니다 (위의 퀴즈 API).
웹 서비스 API 코드는 도메인 이름에서 실행되는 클라이언트 스크립트에 액세스 할 수 있도록 변경 될 수 있습니다.
또는 Express.js 미들웨어 함수를 사용하여 각 엔드 포인트 요청에 헤더를 첨부 할 수 있습니다.
REST의 성공은 주로 단순성 때문입니다. 개발자는 자신의 선호도에 따라 편안한 API를 구현할 수 있지만 이는 더 많은 도전을 초래할 수 있습니다. 심층적으로 편안한 API 구축에 대한 13 가지 모범 사례를 살펴보십시오.
종점 일관성
다음 엔드 포인트를 고려하십시오
Access-Control-Allow-Origin
이들 모두는 사용자 123 데이터를 얻는 데 유효한 옵션입니다. 더 복잡한 작업을 수행함에 따라 조합 횟수가 더욱 증가합니다. 예를 들어, "A"로 시작하고 CompanyX에서 작동하는 10 개의 성을 반환하고 레코드 51부터 시작하여 생년월일에 반대 순서로 정렬하십시오.
궁극적으로 URL을 어떻게 포맷하는지는 중요하지 않지만 API의 일관성은 매우 중요합니다. 이것은 많은 개발자들과 함께 큰 코드 기반의 경우 도전이 될 수 있습니다. Access-Control-Allow-Origin REST API 버전 컨트롤
API 변경은 불가피하지만 엔드 포인트 URL은 결코 실패하지 않아야합니다. 그렇지 않으면이를 사용하는 응용 프로그램을 중단합니다.
API는 일반적으로 호환성 문제를 피하기 위해 버전 제어를 채택합니다. 예를 들어,
는
를 대체합니다. 새롭고 오래된 엔드 포인트는 모두 활성화 될 수 있습니다. 불행히도, 이것은 여러 역사적 API를 유지해야합니다. 이전 버전은 결국 폐기 할 수 있지만이 프로세스에는 신중한 계획이 필요합니다.
REST API AUTHENTICATION
위에 표시된 퀴즈 API는
Open 입니다. 모든 시스템은 승인없이 농담을 얻을 수 있습니다. 이는 개인 데이터에 액세스하거나 업데이트를 허용하고 요청을 삭제하는 API의 경우 가능하지 않습니다.
RESTFUL API와 동일한 도메인에있는 클라이언트 응용 프로그램은 다른 HTTP 요청과 마찬가지로 쿠키를 보내고받습니다. (이전 브라우저의 Fetch ()는
초기화 옵션을 설정해야합니다. 따라서 API 요청을 확인하여 사용자가 로그인하고 적절한 권한이 있는지 확인할 수 있습니다.
타사 응용 프로그램은 다른 인증 방법을 사용해야합니다. 일반적인 인증 옵션은 다음과 같습니다
http 기본 인증. 요청 헤더에 Base64 인코딩이 포함 된 HTTP 인증 헤더를 전달하십시오.
<..> API 키. 부여 타사 응용 프로그램은 특정 권한이 있거나 특정 도메인으로만 제한되는 키를 발행하여 API를 사용할 수있는 권한을 부여합니다. 키는 HTTP 헤더 또는 쿼리 문자열의 모든 요청에서 전달됩니다.
<.> oauth. 요청이 이루어지기 전에 클라이언트 ID와 가능한 클라이언트 키를 OAUTH 서버로 보내면 토큰을 얻어야합니다. 그런 다음 OAUTH 토큰은 만료 될 때까지 각 API 요청과 함께 전송됩니다.
JSON 웹 토큰 (JWT). 디지털로 서명 된 인증 토큰은 요청 및 응답 헤더에서 안전하게 전송됩니다. JWT를 사용하면 서버가 액세스 권한을 인코딩 할 수 있으므로 데이터베이스 또는 기타 공인 시스템을 호출 할 필요가 없습니다.
API 인증은 사용 환경에 따라 다릅니다.
경우에 따라 타사 응용 프로그램은 특정 권한이있는 다른 로그인 사용자로 간주됩니다. 예를 들어, MAP API는 호출 응용 프로그램에 대한 두 지점 사이의 경로를 반환 할 수 있습니다. 응용 프로그램이 유효한 클라이언트임을 확인해야하지만 사용자 자격 증명을 확인할 필요는 없습니다.
다른 경우, 타사 응용 프로그램은 전자 메일 콘텐츠와 같은 단일 사용자에게 속하는 개인 데이터를 요청하고 있습니다. REST API는 사용자와 권한을 식별해야하지만 API를 호출하는 응용 프로그램은 신경 쓰지 않을 수 있습니다.
REST API SECURITY
RESTFUL API는 응용 프로그램에 액세스하고 작동하는 또 다른 방법을 제공합니다. 매우 높은 해커 대상이 아니더라도, 제대로 작동하지 않는 클라이언트는 초당 수천 개의 요청을 보내고 서버를 충돌시킬 수 있습니다.
보안은이 기사의 범위 내에 있지 않지만 일반적인 모범 사례에는 다음이 포함됩니다.
Https 사용
강력한 인증 방법을 사용하십시오
CORS를 사용하여 특정 도메인으로 클라이언트 호출을 제한합니다.
는 최소한의 기능을 제공합니다.
모든 엔드 포인트 URL 및 기본 데이터 를 확인하십시오
클라이언트 javaScript 에서 API 토큰 노출을 피하십시오
알 수없는 도메인 또는 IP 주소에서 액세스를 차단합니다
예상치 못한 큰 페이로드를 중지
요율 제한을 고려하십시오. 즉, 동일한 API 토큰 또는 IP 주소를 사용하는 요청은 분당 n으로 제한됩니다
적절한 http 상태 코드 및 캐시 헤더 로 응답하십시오
기록 요청 및 조사 실패
다중 요청 및 불필요한 데이터
RESTFUL API는 구현에 의해 제한됩니다. 응답에는 필요한 것보다 더 많은 데이터가 포함되어 있거나 모든 데이터에 액세스하기 위해 추가 요청이 필요합니다.
저자 및 예약 데이터에 대한 액세스를 제공하는 편안한 API를 고려하십시오. 상위 10 명의 베스트셀러의 데이터를 표시하려면 클라이언트가 다음을 수행 할 수 있습니다.
<:> Swagger : REST APIS를 설계, 기록, 시뮬레이션, 테스트 및 모니터링하는 데 도움이되는 다양한 도구
우체부 : RESTFUL API 테스트 응용 프로그램
Hoppscotch : 우편 운영 소스, 웹 기반 대안
농담, 통화 변환, 지오 코드, 정부 데이터 및 생각할 수있는 모든 주제에 대한 공개 휴식 API도 많이 있습니다. 일부는 무료이지만 일부는 API 키를 등록하거나 다른 인증 방법을 사용해야합니다. 카테고리 목록은 다음을 포함합니다
모든 api
API 목록
공개 API
Google Apis Explorer
자신의 웹 서비스를 구현하기 전에 자신의 프로젝트에서 RESTFUL API를 사용해보십시오. 또는 Facebook, Github, Google 및 기타 많은 자이언트를 따라 자신만의 편안한 API를 구축 할 수 있습니다.
휴식에 대해 자주 묻는 질문 api
REST API는 무엇입니까?
REST API (자세한 상태 전송 응용 프로그램 프로그래밍 인터페이스)는 REST 아키텍처 스타일의 원칙을 사용하여 소프트웨어 응용 프로그램이 인터넷을 통해 서로 통신하고 상호 작용할 수있는 일련의 규칙 및 규칙입니다.
나머지 API의 주요 특성은 무엇입니까? REST API는 리소스 사용, 무국적 클라이언트-서버 통신, 표준 HTTP 방법 (Get, Post, Put, Delete) 및 URL을 사용하여 자원에 액세스하고 조작하는 통합 인터페이스를 사용하는 것이 특징입니다.
왜 REST API라고 불리는가?
REST API (자세한 상태 전송 응용 프로그램 프로그래밍 인터페이스)는 REST (자세한 상태 전송)라고 불리는 건축 스타일의 이름을 따서 명명되었습니다. "REST"라는 용어는 2000 년 박사 학위 논문에서 Roy Fielding이 제안했으며,이 건축 스타일의 원칙과 제약을 간략하게 설명했습니다. "REST"라는 이름은 서버에서 클라이언트로 리소스 상태를 표현하는 개념을 나타냅니다.
REST API를 사용하면 어떤 이점이 있습니까? REST API는 단순성, 확장 성, 통합 용이성, 플랫폼 독립성 및 우려 분리를 포함한 많은 이점을 제공합니다. 또한 웹 및 모바일 애플리케이션에 이상적인 기존 HTTP 인프라를 활용합니다.
REST API가 웹 응용 프로그램으로 제한됩니까? 아니요, 나머지 API는 웹 응용 프로그램에만 국한되지 않습니다. 웹 응용 프로그램, 모바일 애플리케이션 및 서버 간 통신을 포함한 다양한 유형의 소프트웨어 응용 프로그램 간의 통신을 용이하게하는 데 사용할 수 있습니다.
REST API의 네 가지 구성 요소는 무엇입니까?
REST API는 일반적으로 "4 개의 기둥"으로 알려진 4 가지 주요 구성 요소로 구성됩니다. 이러한 구성 요소는 API의 구조, 동작 및 상호 작용을 나머지 건축 스타일로 정의하는 데 도움이됩니다. 네 가지 구성 요소는 자원, HTTP 방법 (동사), 표현 및 일반 인터페이스입니다.
REST API를 구축하기 위해 어떤 도구 나 라이브러리를 사용할 수 있습니까? Express.js (Node.js), 플라스크 (파이썬), Ruby on Rails (Ruby), Django (Python), Spring Boot (Java) 등을 포함하여 REST API를 구축하기위한 많은 도구와 프레임 워크가 있습니다.
이 응답은 원본 이미지 형식 및 배치를 유지합니다.
위 내용은 REST API는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!