finds.dev← search

// the find

encode/django-rest-framework

★ 30,062 · Python · NOASSERTION · updated Jun 2026

Web APIs for Django. 🎸

Django REST Framework is the de-facto standard library for building REST APIs on top of Django. It's been around since 2011 and is used in production by thousands of teams, from small startups to large enterprises. If you're building a Django backend that needs to expose an API, this is almost certainly what you should reach for.

- The browsable API is genuinely useful during development — you get a self-documenting HTML interface for free that lets you interact with every endpoint without Postman or curl.

- ModelSerializer with its automatic field inference and validation cuts out a huge amount of boilerplate; going from a Django model to a working CRUD API is maybe 10 lines of code.

- The permission, authentication, and throttling systems are cleanly layered and composable — you can mix session auth with token auth, stack multiple permission classes, and override at the view level without fighting the framework.

- Test coverage is high, the project has been actively maintained for over a decade, and the documentation is thorough and accurate — rare combination.

- Writable nested serializers are notoriously painful — the framework explicitly punts on this in the docs and you end up writing a bunch of manual `create()` and `update()` overrides that feel like they should be handled automatically.

- No native async support. DRF views are synchronous Django views. With Django itself supporting async views since 3.1, DRF's lack of async means you're blocked from using async ORM queries or async external calls without workarounds.

- ViewSets and Routers add a layer of magic that trips up new developers — the implicit action-to-method mapping and the way `@action` decorators interact with routers is non-obvious and debugging routing issues takes more time than it should.

- OpenAPI schema generation has improved but still produces inaccurate output for non-trivial cases — custom fields, dynamic serializers, and nested relationships often require manual schema annotation, defeating the point of auto-generation.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →