This post and video shows how to complete the challenge POST /todos/id (200)
to successfully update a todo item in the application.
What are the API Challenges?
Our API Challenges Application has a fully functional cloud hosted API, and a set of challenges to work through.
POST /todos/id (200)
Issue a POST request to successfully update a todo
POST
request will update a todo if the providedid
exists/todos/id
end point- e.g.
POST /todos/3
for a todo withid==3
- e.g.
200
is an success code, in this case it means the todo was updated- The body of the message should be a
json
orxml
partial set oftodo
details, - and the
json
orxml
should be defined in thecontent-type
header
Basic Instructions
- Issue a
POST
request to end point “/todos/id”- where
id
is replaced with the id of an existing todo- if you don’t know any then a
GET /todos
would show a list of todos, or you couldPOST /todos
to create one.
- if you don’t know any then a
- if running locally that would be
http://localhost:4567/todos/id
- if running in the cloud that would be
https://apichallenges.herokuapp.com/todos/id
- where
- The request should have an
X-CHALLENGER
header to track challenge completion - The
content-type
in the message should beapplication/json
because we are sending a JSON payload - The Payload should have a partial set of todo details. e.g.
{
"title": "updated title"
}
- The response status code should be
200
when 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": 49,
"title": "updated title",
"doneStatus": false,
"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. You may not be allowed to use all the fields in an update, e.g. the id
might throw an error becuase you should not be able to update the id
.
Insomnia Details
> POST /todos/49 HTTP/1.1
> Host: apichallenges.herokuapp.com
> User-Agent: insomnia/2020.3.3
> X-CHALLENGER: x-challenger-guid
> Content-Type: application/json
> Accept: */*
> Content-Length: 32
| {
| "title": "updated title"
| }
< 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": 49,
"title": "updated title",
"doneStatus": false,
"description": ""
}
Overview Video
Patreon ad free version with transcript