http.put()
項目一覧
定義
HTTP PUT を送信する Atlas App Services HTTP Service を使用して、指定された URL にリクエストを送信します。
使用法
例
注意
この例では、 "myHtp" というHTTP Serviceを構成していることを前提としています。 サービス ルールで検証されるこの HTTP アクションが必要ない場合は、 HTTP requests の送信( context.http
)モジュールを使用できます。
exports = function() { const http = context.services.get("myHttp"); return http.put({ url: "https://www.example.com/messages", body: { msg: "This is in the body of a PUT request!" }, encodeBodyAsJSON: true }) .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.put()
アクションは、次の形式の 1 つの引数を受け入れます。
{ "url": <string>, "headers": <document>, "body": <string>, "form": <document>, "cookies": <string>, "authUrl": <string>, "followRedirects": <boolean> }
フィールド | 説明 | ||||||
---|---|---|---|---|---|---|---|
Request URL url: <string> | 必須。 HTTP リクエストのターゲット URL。 あるいは、URL のコンポーネントをルート レベル フィールドとして指定することもできます。 「代替の URL 引数 」を参照してください。 | ||||||
Request Body body: <string> | 必須。 HTTP リクエストの文字列化された本文。 リクエスト ペイロードのコンテンツタイプが multipart/form-data の場合は、 body ではなくform パラメータを使用します。 | ||||||
Form Request Body form: <document> | 各フィールドが 注意
例
| ||||||
Request Headers headers: <document> | 任意。 各フィールド名がHTTPヘッダーのタイプに対応し、各フィールド値がそのヘッダーの 1 つ以上のstring値の配列であるドキュメント。 例
| ||||||
Request Cookies cookies: <document> | 任意。 各フィールド名がクッキー名に対応し、各フィールド値がそのクッキーのstring値であるドキュメント。 例
| ||||||
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クエリstringのパラメーターにマップされるドキュメント。 各フィールドの値は、パラメーターのすべての引数を含む string の配列です。 例
| |||||||
fragment | Optional. URL フラグメント。 URL のこの部分には、ハッシュ( 例
| |||||||
username | Optional. リクエストを認証するユーザー名。 通常、ユーザーはこの引数を | |||||||
password | Optional. リクエストを認証するためのパスワード。 パスワードは、 |
戻り値
http.put()
アクションは、次の形式のドキュメントに解決される Promise を返します。
{ "status": <string>, "statusCode": <integer>, "contentLength": <integer>, "headers": <document>, "cookies": <array>, "body": <binary> }
フィールド | タイプ | 説明 | |||
---|---|---|---|---|---|
status | string | HTTP リクエスト ステータス メッセージ。 | |||
statusCode | integer | HTTP リクエスト ステータス コード。 | |||
contentLength | integer | レスポンス body で返されたバイト数。 | |||
headers | ドキュメント | 各フィールド名がHTTPヘッダーのタイプに対応し、各フィールド値がそのヘッダーの 1 つ以上のstring値の配列であるドキュメント。 例
| |||
cookies | ドキュメント | 各フィールド名がクッキー名に対応し、各フィールド値がそのクッキーのstring値であるドキュメント。 例
| |||
body | バイナリ | HTTP レスポンスのバイナリ エンコードされた本体。 |
認証を要求する
標準の HTTP 認証スキーム のいずれかを使用して、アウトバウンド HTTP リクエストを認証できます 。Atlas App Services は次の認証スキームをサポートしています。
基本認証
HTTP 基本認証 では、受信リクエストにリクエスト サービスの有効なユーザー名とパスワードが含まれている必要があります。ユーザー認証情報は、リクエスト ドキュメントの username
フィールドと フィールドで、password
url
string で直接、または 認証 済みで指定できます。 HTTP ヘッダー。
例
次の例は、基本認証を使用してHTTP Serviceリクエストを認証する 3 つの同等の方法を示しています。 例えではすべて、ユーザー名MyUser
とパスワードMypassw0rd
が使用されています。 これらのオブジェクトの 1 つを、指定された 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
string で直接指定します。
例
次の例は、ダイジェスト認証を使用してHTTP Serviceリクエストを認証する 2 つの同等の方法を示しています。 例えではすべて、ユーザー名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" }
リクエスト本文には特定のフィールドが含まれている必要があります
{ "body.name": { "%exists": 1 } }
リクエスト本文には特定の値を持つフィールドが含まれている必要があります
{ "body.city": "New York City" }