http.get()을 호출합니다.
이 페이지의 내용
정의
HTTP GET 를 전송합니다. Atlas App Services HTTP Service 를 사용하여지정된 URL 로 요청 합니다.
사용법
예시
참고
이 예시 에서는 "myHttp" 라는 HTTP Service 를 구성 했다고 가정합니다. 서비스 규칙 을 사용하여 이 HTTP 조치 의 유효성을 검사할 필요가 없는 경우 HTTP 요청 보내기(context.http
) 모듈을 사용할 수 있습니다.
exports = function() { const http = context.services.get("myHttp"); return http .get({ url: "https://www.example.com/users" }) .then(response => { // The response body is encoded as raw BSON.Binary. Parse it to JSON. const ejson_body = EJSON.parse(response.body.text()); return ejson_body; }) };
매개변수
http.get()
작업은 다음 형식의 인수를 하나만 받습니다.
{ "url": <string>, "headers": <document>, "cookies": <string>, "digestAuth": <boolean>, "authUrl": <string>, "followRedirects": <boolean> }
필드 | 설명 | |||
---|---|---|---|---|
Request URL url: <string> | 필수입니다. HTTP 요청 의 대상 URL 입니다. 또는 URL 의 구성 요소를 루트 수준 필드로 지정할 수 있습니다. 대체 URL 인수를 참조하세요. | |||
Request Headers headers: <document> | 선택 사항. 각 필드 이름이 HTTP header 유형에 해당하고 각 필드 값이 해당 헤더에 대한 하나 이상의 문자열 값 배열인 문서입니다. 예시
| |||
Request Cookies cookies: <document> | 선택 사항. 각 필드 이름이 쿠키 이름에 해당하고 각 필드 값이 해당 쿠키의 문자열 값인 문서입니다. 예시
| |||
Digest Authentication digestAuth: <boolean> | 선택 사항. 인 true 경우, App Services 는 다이제스트 인증 을 사용하여 요청 을 인증합니다. . 다이제스트 인증 을 사용하려면 username 및 password ( 요청 문서 의 필드 또는 URL 의 일부로)를 지정해야 합니다. 자세한 내용은 인증 요청을 참조하세요. | |||
Request Authentication URL authUrl: <string> | 선택 사항. HTTP 요청에 대한 권한 부여 쿠키를 반환하는 URL입니다. | |||
Follow Redirects followRedirects: <boolean> | 선택 사항. true 인 경우 요청은 대상 URL에 수신되는 모든 HTTP 리디렉션을 따릅니다. |
대체 URL 매개변수
요청 대상 URL의 개별 구성요소를 지정해야 하는 경우 url
필드를 생략하고 구성요소를 루트 수준 필드로 지정합니다. 다음 URL 구성 요소 필드를 사용할 수 있습니다.
<scheme>://<host>/<path>?<query>#<fragment>
{ "scheme": <string>, "host": <string>, "path": <string>, "query": <document>, "fragment": <string>, "username": <string>, "password": <string> }
이름 | 콘텐츠 | |||||||
---|---|---|---|---|---|---|---|---|
scheme | Optional. Default: "http" .Valid options: https , http URL 구성표입니다. 예시
| |||||||
host | Required. 대상 리소스의 호스트 이름입니다. 예시
| |||||||
path | Optional. 대상 리소스의 경로입니다. 예시
| |||||||
query | Optional. 각 필드가 URL 쿼리 문자열의 매개변수에 매핑되는 문서입니다. 각 필드의 값은 매개변수에 대한 모든 인수를 포함하는 문자열 배열입니다. 예시
| |||||||
fragment | Optional. URL 조각입니다. URL의 이 부분에는 해시( 예시
| |||||||
username | Optional. 요청을 인증할 사용자 이름입니다. 일반적으로 사용자는 | |||||||
password | Optional. 요청을 인증하기 위한 비밀번호입니다. 비밀번호는 |
반환 값
http.get()
작업은 다음 형식의 문서로 확인되는 프로미스(Promise)를 반환합니다.
{ "status": <string>, "statusCode": <integer>, "contentLength": <integer>, "headers": <document>, "cookies": <array>, "body": <binary> }
필드 | 유형 | 설명 | |||
---|---|---|---|---|---|
status | 문자열 | HTTP 요청 상태 메시지입니다. | |||
statusCode | integer | HTTP 요청 상태 코드입니다. | |||
contentLength | integer | 응답 body 에서 반환된 바이트 수입니다. | |||
headers | 문서 | 각 필드 이름이 HTTP header 유형에 해당하고 각 필드 값이 해당 헤더에 대한 하나 이상의 문자열 값 배열인 문서입니다. 예시
| |||
cookies | 문서 | 각 필드 이름이 쿠키 이름에 해당하고 각 필드 값이 해당 쿠키의 문자열 값인 문서입니다. 예시
| |||
body | 바이너리 | HTTP 응답의 이진 인코딩 본문입니다. |
인증 요청
표준 HTTP 인증 체계 중 하나를 사용하여 아웃바운드 HTTP 요청을 인증할 수 있습니다. . Atlas App Services는 다음 인증 체계를 지원합니다.
기본 인증
HTTP 기본 인증 수신 요청에는 요청된 서비스에 대한 유효한 사용자 이름과 비밀번호가 포함되어야 합니다. username
password
요청 문서의 및 url
string 필드, 또는 권한 부여 필드에 직접 사용자 자격 증명을 지정할 수 HTTP 있습니다. 헤더.
예시
다음 예시는 기본 인증을 사용하여 HTTP 서비스 요청을 인증하는 세 가지 동일한 방법을 보여줍니다. 예시에서는 모두 사용자 이름 MyUser
와(과) 비밀번호 Mypassw0rd
을(를) 사용합니다. 이러한 객체 중 하나를 주어진 HTTP 메서드에 인수로 전달하면 됩니다.
{ "scheme": "https", "username": "MyUser", "password": "Mypassw0rd", "domain": "www.example.com" }
{ "url": "https://MyUser:Mypassw0rd@www.example.com" }
{ "url": "https://www.example.com", "headers": { "Authorization": [ `Basic ${BSON.Binary.fromText("MyUser:Mypassw0rd").toBase64()}` ] } }
다이제스트 인증
HTTP 다이제스트 인증을 사용하려면 수신 요청에 서버에서 반환된 임의의 논스 값에 기반한 인증 키가 포함되어야 합니다. App Services는 자동으로 키를 구성하고 유효한 사용자 이름과 비밀번호가 있는 요청을 승인할 수 있습니다.
다이제스트 인증을 사용하도록 요청을 구성하려면 digestAuth
필드를 true
(으)로 설정하고 요청 문서의 username
및 password
필드에 사용자 자격 증명을 지정하거나 url
문자열에 직접 지정합니다.
예시
다음 예에서는 다이제스트 인증을 사용하여 HTTP 서비스 요청을 인증하는 두 가지 동일한 방법을 보여줍니다. 예시에서는 모두 사용자 이름 MyUser
와(과) 비밀번호 Mypassw0rd
을(를) 사용합니다.
{ "scheme": "https", "username": "MyUser", "password": "Mypassw0rd", "domain": "www.example.com", "digestAuth": true }
{ "url": "https://MyUser:Mypassw0rd@www.example.com", "digestAuth": true }
규칙 템플릿
사용자는 특정 호스트에게만 요청을 보낼 수 있습니다.
{ "%%args.url.host": "example.com" }
요청 URL에는 특정 쿼리 매개변수가 포함되어야 합니다.
{ "%%args.url.query.someParameter": "importantValue" }
요청은 특정 경로로 보내야 합니다.
{ "%%args.url.scheme: "https", "%%args.url.host" : "www.example.com", "%%args.url.path" : "/api/v1.0/messages" }