Install transfer tutorial: npm install cmda-be/transfer --global
Open localhost:1901 in your browser. The web browser sent a GET request (“give me the thing”) to / on localhost:1901.
As a user, your web browser can act for you, but so can Curl. It is a command line application that can send HTTP requests. Send a GET request to / on
localhost:1901 with Curl by running the following code in another tab of
your terminal: curl localhost:1901
Inspect the headers sent to and from the API using Curl's verbose
mode, by running the following code in the other tab of your terminal:
curl localhost:1901 --verbose
HTTP/1.1 405 Method Not Allowed
Status codes in the range of 4xx mean that the client made an error. In this case, 405 Method Not Allowed, means that the method (DELETE) is not
supported.
The Allow header also mentioned HEAD (and POST). HEAD is like GET but tells the server not to send any data back. To proceed, send a HEAD request
to /.
POST to / to add a movie to a list of movies. PUT to /wonder-woman to place a movie there, if it exists or not.
HTTP/1.1 410 Gone
The status code is again in the 4xx range, which means the client made an error. 410 Gone specifically means that there used to be something there, but it no longer exists. Apparently, the movie API keeps track of movies that used to be there.
The API returns JSON data.
That is not always the case though. The API can also return XML data. In fact, APIs could return HTML as well, or CSV, or other data formats, based on what the client wants.
By sending a GET request to / with an Accept header with the value application/xml. You can add a request header in Curl like so:
--header 'Accept: application/xml'
But how to authorize a request? Well, that depends based on the server you are talking to. Most APIs have very good docs describing how to do that. In our case, it's by sending a token to the API. Try it out by sending a DELETE request to /evil-dead again, but this time use an Authorization header with the value token 5b8822b29.
Extra
HTTP methods: OPTIONS, HEAD, GET, POST, PUT, PATCH, and DELETE
HTTP status codes: 200 OK, 201 Created, 204 No Content, 400 Bad Request,
401 Unauthorized, 404 Not Found, 405 Method Not Allowed, 410 Gone, and 422
Unprocessable Entity
HTTP headers: Accept and Content-Type, Accept-Encoding and
Content-Encoding, and Authorization
How to use Curl to make requests, set headers, and send data to a server
Cheatsheet
Install transfer tutorial:
npm install cmda-be/transfer --global
Open
localhost:1901
in your browser. The web browser sent aGET
request (“give me the thing”) to/
onlocalhost:1901
.As a user, your web browser can act for you, but so can Curl. It is a command line application that can send HTTP requests. Send a
GET
request to/
onlocalhost:1901
with Curl by running the following code in another tab of your terminal:curl localhost:1901
Inspect the headers sent to and from the API using Curl's verbose mode, by running the following code in the other tab of your terminal:
curl localhost:1901 --verbose
HTTP/1.1 405 Method Not Allowed
Status codes in the range of 4xx mean that the client made an error. In this case, 405 Method Not Allowed, means that the method (DELETE) is not supported.The Allow header also mentioned
HEAD
(and POST). HEAD is like GET but tells the server not to send any data back. To proceed, send aHEAD
request to/
.POST
to / to add a movie to a list of movies.PUT
to /wonder-woman to place a movie there, if it exists or not.HTTP/1.1 410 Gone
The status code is again in the 4xx range, which means the client made an error. 410 Gone specifically means that there used to be something there, but it no longer exists. Apparently, the movie API keeps track of movies that used to be there.The
API
returnsJSON
data.That is not always the case though. The API can also return
XML
data. In fact, APIs could return HTML as well, or CSV, or other data formats, based on what the client wants.--header 'Accept: application/xml'
But how to authorize a request? Well, that depends based on the server you are talking to. Most APIs have very good docs describing how to do that. In our case, it's by sending a token to the API. Try it out by sending a DELETE request to /evil-dead again, but this time use an
Authorization
header with the value token5b8822b29
.Extra
HTTP methods: OPTIONS, HEAD, GET, POST, PUT, PATCH, and DELETE
HTTP status codes: 200 OK, 201 Created, 204 No Content, 400 Bad Request, 401 Unauthorized, 404 Not Found, 405 Method Not Allowed, 410 Gone, and 422 Unprocessable Entity
HTTP headers: Accept and Content-Type, Accept-Encoding and Content-Encoding, and Authorization
How to use Curl to make requests, set headers, and send data to a server