IMB
IMB

Reputation: 15889

Sending REST response in plain text or JSON?

When creating a REST API, if I return data in JSON format for GET requests, is it a good practice to also send responses for POST, PUT, DELETE, and error messages in JSON too or plain text will suffice?

For example:

For POST request where I need to return the new ID of the newly added record (i.e. just the new auto increment value in database), should the response still be in JSON or just plain text like "1" or "2" for example.

Same goes for PUT or DELETE request where I need to say "OK" or "Accepted", as well error messages like "Bad Request", "Not Found", etc.

Plain text or JSON?

Upvotes: 3

Views: 19588

Answers (3)

Bruno
Bruno

Reputation: 122599

It depends entirely on the ability the client has.

Of course, you don't actually have to choose one or the other: you can use content-type negotiation to return a different representation depending on the user-agent's acceptance list.

Upvotes: 0

D.Shawley
D.Shawley

Reputation: 59553

Use the client-provided Accept header to let the client control what content type they want. If no header is provided, then use a sensible default and always include a Content-Type header in the response. See the Content Negotiation section of RFC2616 for more details.

Upvotes: 8

Max
Max

Reputation: 10985

Theoretically, returning just "1" is valid JSON. It's just not a array or associative mapping.

For OK and Accepted, you can just use the HTTP status codes for those. No body is really necessary.

Upvotes: 2

Related Questions