Using CURL with django-rest-frameworkΒΆ

curl is a great command line tool for making requests to URLs.

There are a few things that can be helpful to remember when using CURL with django-rest-framework APIs.

  1. Curl sends an Accept: */* header by default:

    curl -X GET http://example.com/my-api/
  2. Setting the Accept: header on a curl request can be useful:

    curl -X GET -H 'Accept: application/json' http://example.com/my-api/
  3. The text/plain representation is useful for browsing the API:

    curl -X GET -H 'Accept: text/plain' http://example.com/my-api/
  4. POST and PUT requests can contain form data (ie Content-Type: application/x-www-form-urlencoded):

    curl -X PUT --data 'foo=bar' http://example.com/my-api/some-resource/
  5. Or any other content type:

    curl -X PUT -H 'Content-Type: application/json' --data-binary '{"foo":"bar"}' http://example.com/my-api/some-resource/
  6. You can use basic authentication to send the username and password:

    curl -X GET -H 'Accept: application/json' -u <user>:<password> http://example.com/my-api/

Project Versions

Previous topic

Setup

Next topic

Alternative frameworks & Why Django REST framework

This Page