Я автоматизирую API для вызова POST, используя Rest Assured и для заголовка Content-Type и ACCEPT, я должен использовать « application / vnd.api + json». Но каждый раз, когда я использую «application / vnd.api + json», я получаю код состояния 415. Хотя тот же POST-вызов с использованием Postman работает отлично.
Вот мой пример кода:
ApiUtils.setBaseURI("xxxxx");
ApiUtils.setBasePath("/orders");
RequestSpecification request = RestAssured.given().auth().oauth2(BaseClass.token);
request.header("ACCEPT", "application/vnd.api+json");
request.header("Content-Type", "application/vnd.api+json");
request.body(JsonCreator.createJson());
Response response = request.post();
Ниже приведен ответ
Request method: POST
Request URI: https://xxxxxx/orders
Headers: ACCEPT=application/vnd.api+json
Content-Type=application/vnd.api+json; charset=ISO-8859-1
Cookies: <none>
Multiparts: <none>
Body:
{
"data": {
"type": "orders",
"attributes": {
"external_id": "2020-04-04-172",
"order_items": [
{
"menu_item_id": "5d29ae25805aaf0009095410",
"variation_id": "5d29ae25805aaf0009095418",
"quantity": 1,
"note": "some note"
}
],
"revenue_center_id": "5d7b44021a2976000938da62",
"order_type_id": "5d27329790a5ba0009386a75",
"guests": [
{
"first_name": "xx",
"last_name": "xx",
"email": "xx@gp.com",
"phone": "5551234567"
}
],
"tip_amount": "1.00"
}
}
}
{"errors":[{"status":415,"code":415,"title":"Content-Type must be JSON API-compliant"}],"jsonapi":{"version":"1.0"}}
Я попытался изменить Тип содержимого для приложения / json, как это предлагается в других публикациях / комментариях, но это неправильно для моего ресурса.
В настоящее время я использую Rest Assured v4.3.0 и json -path v4 .3.0. Также для создания тела запроса я использую библиотеку com.google.gson.JsonObject.