機械翻訳について

RESTクライアントの操作

REST APIはHTTPメソッドを使用してコンテンツを送受信するため、HTTPメッセージの送受信をサポートする任意のプログラミング言語またはツールを使用して、REST APIをテストできます。 まず、HTTPリクエストを作成するためのツールを選択します。

RESTクライアントの選択に関する考慮事項

REST APIと対話する多くのクライアントから、次のようなクライアントを選択できます:

  • PostmanやAdvanced REST Clientなどのスタンドアロン・クライアント。
  • 接続アプリケーションのクライアント。
  • cURLコマンドライン・ユーティリティ。

クライアントを使用して、次のタスクを実行できます:

  • REST APIアカウントのユーザー名、パスワードおよびリクエストURLをテストします。
  • メタデータにアクセスして、RESTリソース、属性およびパラメータについてさらに学習します。
  • 収集された情報を使用して、様々なタイプのHTTPリクエスト(レコードの作成、更新または削除など)を構成および送信します。

cURLを使用してHTTPリクエストを送信する方法

この例では、URL構文を使用してデータを転送する一般的なコマンドライン・ユーティリティであるcURLを使用して、RESTサービスにリクエストを送信します。ほとんどのUNIX、WindowsおよびMacintosh環境では、cURLを使用できます。 詳細は、「WindowsへのcURLコマンドライン・ツールのインストール」を参照してください。

次の表に、RESTサービスに使用できる、一般的に使用されるcURLオプションを示します。

オプション 説明
-userまたは-u username:password

サーバー認証のユーザー名とパスワードを指定します。

-d 指定したデータ(JSONリクエスト本文)をサーバーに送信します。 データをアットマーク(@)で開始する場合は、データの読取り元のファイル名が後に続く必要があります。 例: -d@example_request_payload.json
-H リクエストに追加のHTTPヘッダーを指定します。 複数のヘッダーを指定するには、各ヘッダーの前に-Hオプションを付けます。

次に例を示します。

  • Content-Type: リクエスト本文の形式(POSTなど)
  • 受入: レスポンス本文の形式
-output <file>

出力を標準出力ではなくファイルに書き込みます。

-X HTTPサーバーとの通信時に使用するリクエスト・メソッドを指定します。 デフォルトのメソッドはGETです。

次の表に、cURLを使用したGET、POSTおよびPUT操作の例のB2B Service REST APIのナレッジを示します。

操作 cURLコマンド

GETを使用してカテゴリのリストを取得

curl -X GET https://<IM_REST_API_HOST>/km/api/latest/categories 
-u "username:password"  -H 'Accept: application/json' 
-H "Content-Type: application/json"

POSTを使用してコンテンツ・オブジェクトを評価

curl -X POST https://<IM_REST_API_HOST>/km/api/latest/content/{id}/rate 
-u "username:password"  -H 'Accept: application/json' 
-d {
    "survey": {
        "recordId": "0480165035cb2f4a014581a0f299007b3a",
        "referenceKey": "REFERENCEKEY_VALUE",
        "links": [
            {
                "rel": "canonical",
                "href": "https://<IM_REST_API_HOST>/km/api/{version}/{resourceURI}",
                "mediaType": "application/json, application/xml",
                "templated": true,
                "method": "GET"
            }
        ]
    },
    "locale": {},
    "answer": {},
    "answerComment": "ANSWER_COMMENT"
}

PUTを使用したコンテンツ・オブジェクトのインポート

curl -X PUT http://<IM_REST_API_HOST>/km/api/latest/content/{id}/import 
-u "username:password"  -H 'Accept: application/json' 
-d {
    "content": {
        "isForEdit": true,
        "views": [
            {
                "recordId": "0246897531",
                "referenceKey": "PRODUCT_MANAGEMENT",
                "name": "PRODUCT_MANAGEMENT"
            }
        ],
        "recordId": "12345678",
        "versionId": "4B5BE004C5BD48B8B67D48E93E2D750D",
        "documentId": "FAQ92",
        "version": "0.1",
        "answerId": 1001041,
        "locale": {
            "recordId": "es_ES"
        },
        "dateModified": "2017-05-18T14:10:38-0500",
        "contentType": {
            "recordId": "9876543210",
            "referenceKey": "FAQ",
            "name": "FAQ"
        },
        "createDate": "2017-05-18T14:10:38-0500",
        "dateAdded": "2017-05-18T14:10:38-0500",
        "published": false,
        "pending": false,
        "checkedOut": false,
        "basedOnVersion": "2.0",
        "basedLocale": {
            "recordId": "en_US"
        },
        "xml": "XML_VALUE"
    },
    "contentModificationQualifier": {
        "publish": false,
        "bypassWorkflowAndPublish": false
    }
}

クライアントを使用したHTTPリクエストの送信方法

スタンドアロン・クライアント、サードパーティのブラウザ拡張機能、または拡張RESTクライアントなどのアドオンを使用して、HTTPリクエストを送信できます。

次に、クライアントを使用したGET、POSTおよびPATCH操作の例を示します。

  • GET: カテゴリを取得します。

    リクエストURL : https://<IM_REST_API_HOST>/km/api/latest/categories/{id}

    レスポンス本文:

    {
      "recordId": "01720CE1AE454C32BD4D496740AC66D0",
      "referenceKey": "FUSION_CATEGORY_300100089778735",
      "name": "Hierarchy test - Parent",
      "externalId": 300100089778735,
      "externalType": "CATEGORY",
      "links": [
        {
          "rel": "children",
          "href": "https://<IM_REST_API_HOST>/km/api/latest/categories/01720CE1AE454C32BD4D496740AC66D0/children",
          "mediaType": "application/json, application/xml",
          "method": "GET"
        },
        ...
      ],
      "dateAdded": "2016-09-16T13:13:00-0600",
      "dateModified": "2016-09-16T13:13:01-0600",
      "objectId": "002",
      "sortOrder": 1,
      "description": "PARENT0000001111111",
      "hasChildren": true
    }
  • POST: ユーザー・キー値を作成します。

    リクエストURL : https://<IM_REST_API_HOST>/km/api/latest/users/{userId}/userKeyValues

    リクエスト本文:
    {
      "userInformation" : {
        "recordId" : "62AE91CBB23A49668BC7B9A220B696C7",
        "name" : "User_Name",
        "externalId" : 12345,
        "externalType" : "CONTACT",
        "links" : [ {
          "rel" : "canonical",
          "href" : "https://<IM_REST_API_HOST>/km/api/{version}/{resourceURI}",
          "mediaType" : "application/json, application/xml",
          "templated" : true,
          "method" : "GET",
          "profile" : "https://<IM_REST_API_HOST>/km/api/{version}/metadata-catalog/{resourceName}"
        } ]
      },
      ...,
      "dateAdded" : "2013-04-23T20:06:43-0500",
      "dateModified" : "2013-04-23T20:06:43-0500",
      "key" : "FAVORITES2",
      "value" : "FAQ1,FAQ23,FAQ44"
    }
    レスポンス本文:
    {
      "userInformation": {
        "recordId": "62AE91CBB23A49668BC7B9A220B696C7",
        "name": "User Name Value",
        "externalType": "ACCOUNT",
        "links": [
          {
            "rel": "canonical",
            "href": "https://<IM_REST_API_HOST>/km/api/latest/users/62AE91CBB23A49668BC7B9A220B696C7",
            "mediaType": "application/json, application/xml",
            "method": "GET"
          }
        ]
      },
      "recordId": "75F56044C4D94DC181CDA898D0F0B3E2",
      "links": [
        {
          "rel": "canonical",
          "href": "https://<IM_REST_API_HOST>/km/api/latest/users/62AE91CBB23A49668BC7B9A220B696C7/userKeyValues/75F56044C4D94DC181CDA898D0F0B3E2",
          "mediaType": "application/json, application/xml",
          "method": "GET"
        },
        ...
      ],
      "dateAdded": "2017-03-28T14:48:21-0500",
      "dateModified": "2017-03-28T14:48:21-0500",
      "key": "FAVORITES2",
      "value": "FAQ1,FAQ23,FAQ44"
    }
  • PATCH: ユーザー・オブジェクトのすべてのカスタム・キー値を置換します。

    リクエストURL : https://<IM_REST_API_HOST>/km/api/latest/users/{id}/customKeyValues

    リクエスト本文:
    {
      "items" : [ {
        "links" : [ {
          "rel" : "canonical",
          "href" : "https://<IM_REST_API_HOST>/km/api/{version}/{resourceURI}",
          "mediaType" : "application/json, application/xml",
          "templated" : true,
          "method" : "GET",
          "profile" : "https://<IM_REST_API_HOST>/km/api/{version}/metadata-catalog/{resourceName}"
        } ]
      }, 
    .
    .
    .
      } ]
    }
    レスポンス本文:
    This request does not return any response body.