mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-11 20:27:12 +03:00
30 lines
1.2 KiB
ReStructuredText
30 lines
1.2 KiB
ReStructuredText
|
Using CURL with django-rest-framework
|
||
|
=====================================
|
||
|
|
||
|
`curl <http://curl.haxx.se/>`_ 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.
|
||
|
|
||
|
#. Curl sends an ``Accept: */*`` header by default::
|
||
|
|
||
|
curl -X GET http://example.com/my-api/
|
||
|
|
||
|
#. Setting the ``Accept:`` header on a curl request can be useful::
|
||
|
|
||
|
curl -X GET -H 'Accept: application/json' http://example.com/my-api/
|
||
|
|
||
|
#. The text/plain representation is useful for browsing the API::
|
||
|
|
||
|
curl -X GET -H 'Accept: text/plain' http://example.com/my-api/
|
||
|
|
||
|
#. All POST requests should include an ```X-Requested-With: XMLHttpRequest`` header <http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#how-it-works>`_::
|
||
|
|
||
|
curl -X POST -H 'X-Requested-With: XMLHttpRequest' --data 'foo=bar' http://example.com/my-api/
|
||
|
|
||
|
#. ``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/
|
||
|
|
||
|
#. Or any other content type::
|
||
|
|
||
|
curl -X PUT -H 'Content-Type: application/json' --data-binary '{"foo":"bar"}' http://example.com/my-api/some-resource/
|