SW/리눅스

Linux : Curl : REST API 요청 방법, 예제, 명령어

얇은생각 2022. 9. 27. 07:30
반응형

 

 

Linux : Curl : REST API 요청 방법, 예제, 명령어

 

 

응용 프로그램 인터페이스(API)는 소프트웨어 프로그램이 서로 통신할 수 있도록 하는 정의 및 프로토콜 집합입니다.

REST라는 용어는 대표 상태 이전을 의미합니다. 웹 서비스를 생성할 때 사용할 제약 조건 집합으로 구성된 아키텍처 스타일입니다.

RESTful API는 REST 아키텍처를 따르는 API입니다. 일반적으로 REST API는 HTTP 프로토콜을 사용하여 데이터 및 JSON 형식의 응답을 보내고 검색합니다. 표준 HTTP 방법을 사용하여 API를 통해 리소스를 생성, 보기, 업데이트 또는 삭제할 수 있습니다.

RESTful API를 테스트하고 상호 작용하기 위해 HTTP 요청을 할 수 있는 라이브러리 또는 도구를 사용할 수 있습니다.

API 요청은 다음과 같은 네 가지 부분으로 구성됩니다.

 

엔드포인트입니다. 클라이언트가 서버와 통신하기 위해 사용하는 URL입니다.

HTTP 메서드입니다. 클라이언트가 수행하고자 하는 작업을 서버에 알려줍니다. 가장 일반적인 방법은 GET POST PUT DELETE 및 패치입니다.

헤더입니다. 권한 부여와 같은 추가 정보를 서버와 클라이언트 간에 전달하는 데 사용됩니다.

바디입니다. 서버로 전송된 데이터입니다.

 

이 문서에서는 컬을 사용하여 RESTful API와 상호 작용하는 방법에 대해 설명하겠습니다. 컬은 원격 서버에서 또는 원격 서버로 데이터를 전송하는 명령줄 유틸리티입니다. 기본적으로 macOS 및 대부분의 Linux 배포에 설치됩니다.

 

 

 

옵션을 컬링 

curl 명령의 구문은 다음과 같습니다.

curl [options] [URL...]

 

 

요청할 때 사용하는 옵션은 다음과 같습니다.

 

-X, --request - 사용할 HTTP 메서드입니다.

-i, --include - 응답 헤더를 포함합니다.

-d, --data - 전송할 데이터입니다.

-H, --header - 추가 헤더를 보냅니다.

 

 

HTTP GET

GET 메서드는 서버에서 특정 리소스를 요청합니다.

GET는 컬을 사용하여 HTTP 요청을 할 때 기본 방법입니다. 다음은 모든 게시물의 JSON 표현에 대해 JSONPlaceholder API에 GET 요청을 하는 예입니다.

curl https://jsonplaceholder.typicode.com/posts

 

 

결과를 필터링하려면 쿼리 매개 변수를 사용합니다.

curl https://jsonplaceholder.typicode.com/posts?userId=1

 

 

 

HTTP POST

POST 방법은 서버에 리소스를 생성하는 데 사용됩니다. 리소스가 있으면 재정의됩니다.

다음 명령은 -d 옵션으로 지정된 데이터를 사용하여 POST를 요청합니다.

curl -X POST -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts

 

 

요청 본문의 유형은 Content-Type 헤더를 사용하여 지정합니다. 이 헤더에 컬이 지정되지 않은 경우 기본적으로 컨텐츠 유형: application/x-ww-form-urloged를 사용합니다.

JSON 형식의 데이터를 전송하려면 본문 유형을 애플리케이션/json으로 설정합니다.

curl -X POST -H "Content-Type: application/json" \
    -d '{"userId": 5, "title": "Hello World", "body": "Post body."}' \
    https://jsonplaceholder.typicode.com/posts

 

 

 

HTTP PUT

PUT 메서드는 서버의 리소스를 업데이트하거나 교체하는 데 사용됩니다. 지정된 리소스의 모든 데이터를 요청 데이터로 바꿉니다.

curl -X PUT -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts/5

 

 

 

HTTP PATCH

PUT 방법은 서버의 리소스를 부분적으로 업데이트하는 데 사용됩니다.

curl -X PUT -d "title=Hello Universe" https://jsonplaceholder.typicode.com/posts/5

 

 

 

HTTP DELETE

DELETE 메서드는 지정된 리소스를 서버에서 제거합니다.

curl -X DELETE https://jsonplaceholder.typicode.com/posts/5

 

 

 

인증

API 끝점에 인증이 필요한 경우 액세스 키를 받아야 합니다. 그렇지 않으면 API 서버는 "액세스 금지" 또는 "인증되지 않은" 응답 메시지로 응답합니다.

액세스 키를 얻는 과정은 사용 중인 API에 따라 다릅니다. 액세스 토큰이 있으면 헤더로 토큰을 전송할 수 있습니다.

curl -X GET -H "Authorization: Bearer {ACCESS_TOKEN}" "https://api.server.io/posts"

 

 

API 테스트 요청을 위해 컬을 사용하는 방법을 보여드렸습니다. 컬에 대한 자세한 내용은 컬 문서 페이지를 참조하십시오.

 

 

 

참조

https://linuxize.com/post/curl-rest-api/

반응형