How to complete the challenge PUT /todos/id (200) full update
How to use a PUT request to successfully update a todo item in the application using a full payload.
PUT request updates are idempotent so should generate the same response each time.
PUT /todos/id (200) full update
Issue a PUT request to successfully update a todo using a full payload
PUTrequest will update a todo if the providedidexists/todos/idend point- e.g.
PUT /todos/3for a todo withid==3
- e.g.
200is an success code, in this case it means the todo was updated- The body of the message should be a
jsonorxmlfull set oftododetails, - and the
jsonorxmlshould be defined in thecontent-typeheader - the id can optionally be included in the payload, but if it is then it should match the id in the url
- all required fields must be included
Basic Instructions
- Issue a
PUTrequest to end point "/todos/id"- where
idis replaced with the id of an existing todo- if you don't know any then a
GET /todoswould show a list of todos
- if you don't know any then a
https://apichallenges.com/todos/id
- where
- The request should have an
X-CHALLENGERheader to track challenge completion - The
content-typein the message should beapplication/jsonbecause we are sending a JSON payload - The Payload should have a full set of todo details. e.g.
{
"id": 3,
"title": "updated title",
"doneStatus": false,
"description": "updated description"
}
- The id included in the payload should be the same as the id of the url because we cannot update the id, the id is auto generated.
- The response status code should be
200when all the details are valid. - The body of the response will a JSON showing the full todo details, and your updated values should be present.
{
"id": 3,
"title": "updated title",
"doneStatus": false,
"description": "updated description"
}
NOTE: if you haven't read the documentation and don't know what format to use then issue a GET request for a single entity and the payload format for the POST is likely to be pretty close.
NOTE: because you add an id to the payload you risk triggering an error validation if the id in the payload is different from the id in the URL.
Try it now
If you don't know what todos are available then you can check by GET /todos. See the solution.
GET /todos to see what todos are available now
If you have already deleted all todos, create one using POST /todos. See the solution.
POST /todos to create a todo item for this challenge
PUT /todos/{id} with a full body to update a todo
Example Request
> PUT /todos/3 HTTP/1.1
> Host: apichallenges.com
> User-Agent: rest-client
> X-CHALLENGER: x-challenger-guid
> Content-Type: application/json
> Accept: */*
> Content-Length: 32
| {
| "id": 3,
| "title": "updated title",
| "doneStatus": false,
| "description": "updated description"
| }
Example Response
< HTTP/1.1 200 OK
< Connection: close
< Date: Sat, 06 Feb 2021 12:08:58 GMT
< Content-Type: application/json
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Headers: *
< X-Challenger: x-challenger-guid
< Server: Jetty(9.4.z-SNAPSHOT)
< Via: 1.1 vegur
Returned body:
{
"id": 3,
"title": "updated title",
"doneStatus": false,
"description": "updated description"
}