Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Unsupported media type" when PUTing to Apigility with Postman

I'm a building a RESTful API using Zend Framework 2 and Apigility by Zend Framework. For testing, I use the chrome extension Postman REST-Client.

I can do GET requests and POST requests without problems by sending form-data without problems.

But when I try to do a PUT, PATCH or DELETE request, I get the following error:

{
    "type":"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
    "title":"Unsupported Media Type",
    "status":415,
    "detail":"Invalid content-type specified"
}

Accept whitelist in Rest-Service-Config of Apigility:

application/vnd.timber-ms.v1+json, application/hal+json, application/json

Content-Type whitelist:

application/vnd.timber-ms.v1+json, application/json

The content-type of the response is application/problem+json

What can I do to fix this and do successfull PUT/PATCH requests? Is this a problem with Postman or Apigility?

like image 207
Manuel Hoffmann Avatar asked Dec 26 '22 11:12

Manuel Hoffmann


1 Answers

You're getting the 415 error of Unsupported Media Type when Apigility cannot deserialize the data coming from the client. This recently was called out in the documentation.

I suspect your problem is due to the content-type being sent from postman. Pay special attention to the Content-Type Whitelist listed for the service and make sure it contains the content-type you are sending.

For example, if your service has only has application/json in the Content-Type Whitelist and you send the PUT/PATCH with postman as x-www-form-urlencoded, you will get a 415 error of Unsupported Media Type. If you change postman to send the PUT/PATCH with a content-type of application/json and the request body contains valid JSON, Apigility should accept the request.

You can check the content-type postman is sending by clicking on the "Preview" button just to the right of the "Send" button.

like image 86
Chad Lad Avatar answered Jan 14 '23 13:01

Chad Lad