Simple JSON API in Django
For the Bible API, I made the decision early on that I was going to be using JSON for the API.
Creating a JSON API in Django is extremely simple.
views.py from django.core import serializers from django.http import HttpResponse def verses(request, version, book, chapter, verse, verse2): '''Returns a list of verses for a given version, book, chapter, and optional verses''' verses = Verse().get_verses(version, book, chapter, verse, verse2) if 'application/json' in request.META.get('HTTP_ACCEPT'): return HttpResponse(serializers.serialize("json", verses), mimetype='application/json') else: #do some non-json stuff here return...
First, we make sure to import serializers from
In the verses method, we get the verses from the model. Next, we check if the
HTTP_ACCEPT header contains
application/json. If so, then we return an HttpResponsewith the verses serialized to “json” with a
You can then test your API using curl.
curl --header "Accept: application/json" http://url/path/to/your/api/
And that’s it. You can also do the same with XML if you so choose.