Docs Menu
Docs Home
/ /
Atlas App Services
/ / /

http.put()

項目一覧

  • 定義
  • 使用法
  • パラメーター
  • 戻り値
  • ルール テンプレート
  • ユーザーは特定のホストにリクエストのみを送信できる
  • リクエスト URL には特定のクエリ パラメータが含まれている必要があります
  • リクエスト本文には特定のフィールドが含まれている必要があります
  • リクエスト本文には特定の値を持つフィールドが含まれている必要があります
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>

各フィールドがmultipart/form-dataリクエストのフィールドにマップされるドキュメント。 このパラメータは、 bodyパラメータと同時に使用することはできません。

注意

formパラメータを使用するリクエストには、 Content-Type: multipart/form-dataヘッダーも含める必要があります。

"form": {
"to-address": "name@example.com",
"from-address": "other-name@example.com",
"subject": "test subject please ignore",
"message-body": "hello from the message body"
}

Request Headers

headers: <document>

任意。 各フィールド名がHTTPヘッダーのタイプに対応し、各フィールド値がそのヘッダーの 1 つ以上のstring値の配列であるドキュメント。

{
"Content-Type": [ "application/json" ]
}

Request Cookies

cookies: <document>

任意。 各フィールド名がクッキー名に対応し、各フィールド値がそのクッキーのstring値であるドキュメント。

{
"favoriteTeam": "Chicago Cubs"
}

Digest Authentication

digestAuth: <boolean>
任意。 trueの場合、App Services は ダイジェスト認証 を使用してリクエストを認証します 。ダイジェスト認証を使用するには、 usernamepassword (リクエスト ドキュメントのフィールドまたは URL の一部として)を指定する必要があります。 詳細については、「認証のリクエスト 」を参照してください。

Request Authentication URL

authUrl: <string>
任意。 HTTP リクエストの認可クッキーを返す URL。

Follow Redirects

followRedirects: <boolean>
任意。 trueの場合、リクエストはターゲット URL に対して受信した HTTP リダイレクト に従います。

リクエストのターゲット 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 スキーム。

// https://www.example.com/
{ scheme: "https" }
host
Required.

ターゲット リソースのホスト名。

// https://www.example.com/
{ host: "www.example.com" }
path
Optional.

ターゲット リソースのパス。

// https://www.example.com/api/v1/users
{ path: "/api/v1/users" }
query
Optional.

各フィールドがURLクエリstringのパラメーターにマップされるドキュメント。 各フィールドの値は、パラメーターのすべての引数を含む string の配列です。

// https://www.example.com/?id=8675309&color=red&color=blue
{
query: {
"id": ["8675309"],
"color": ["red", "blue"]
}
}
fragment
Optional.

URL フラグメント。 URL のこの部分には、ハッシュ( # )記号の後のすべてが含まれます。

// https://www.example.com/?id=8675309#someFragment
{ fragment: "someFragment" }
username
Optional.

リクエストを認証するユーザー名。 通常、ユーザーはこの引数をpassword引数とともに使用します。

password
Optional.

リクエストを認証するためのパスワード。 パスワードは、 username引数で指定されたユーザーに対応する必要があります。

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値の配列であるドキュメント。

{
"Content-Type": [ "application/json" ]
}
cookies
ドキュメント

各フィールド名がクッキー名に対応し、各フィールド値がそのクッキーのstring値であるドキュメント。

{
"favoriteTeam": "Chicago Cubs"
}
body
バイナリ
HTTP レスポンスのバイナリ エンコードされた本体。

標準の HTTP 認証スキーム のいずれかを使用して、アウトバウンド HTTP リクエストを認証できます 。Atlas App Services は次の認証スキームをサポートしています。

HTTP 基本認証 では、受信リクエストにリクエスト サービスの有効なユーザー名とパスワードが含まれている必要があります。ユーザー認証情報は、リクエスト ドキュメントの usernameフィールドと フィールドで、passwordurl string で直接、または 認証 済みで指定できます。 HTTP ヘッダー。

次の例は、基本認証を使用してHTTP Serviceリクエストを認証する 3 つの同等の方法を示しています。 例えではすべて、ユーザー名MyUserとパスワードMypassw0rdが使用されています。 これらのオブジェクトの 1 つを、指定された HTTP メソッドへの引数として渡します。

認証情報を直接指定する(ベストメソッド)
{
"scheme": "https",
"username": "MyUser",
"password": "Mypassw0rd",
"domain": "www.example.com"
}
URL に認証情報を埋め込む
{
"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 usernamepasswordドキュメントの フィールドと フィールドにユーザー認証情報を直接指定するか、url string で直接指定します。

次の例は、ダイジェスト認証を使用してHTTP Serviceリクエストを認証する 2 つの同等の方法を示しています。 例えではすべて、ユーザー名MyUserとパスワードMypassw0rdが使用されています。

認証情報を直接指定する(ベストメソッド)
{
"scheme": "https",
"username": "MyUser",
"password": "Mypassw0rd",
"domain": "www.example.com",
"digestAuth": true
}
URL に認証情報を埋め込む
{
"url": "https://MyUser:Mypassw0rd@www.example.com",
"digestAuth": true
}
{
"%%args.url.host": "example.com"
}
{
"%%args.url.query.someParameter": "importantValue"
}
{
"body.name": { "%exists": 1 }
}
{
"body.city": "New York City"
}

戻る

http.post()