Hi,
I'm trying to set up DRF as a read-only API, and want to require that all
URLs have either a .api or .json format extension.
I've sort of managed this so far by copying the DefaultRouter class and in
its get_urls() method changing this call:
urls = format_suffix_patterns(urls)
to this:
urls = format_suffix_patterns(
urls, suffix_required=True, allowed=["api", "json"]
)
This gets me what I need but leaves me with two remaining/resulting issues:
1. Tbe API Root URL looks like /api/v1/.api or /api/v1/.json. I feel it
shouldn't have that final slash but, given all non-API URLs on the site
have an ending slash, and I include my API URL conf with path("api/v1/",
include("myproject.api.urls", namespace="v1")), I can't see how to fix it.
2. When I view the Browsable API, using the .api extension URLs, the links
in the Breadcrumbs do not have the extension, and so clicking them 404s. I
can't see any way to fix this other than subclassing BrowsableAPIRenderer
and using a modified utils.breadcrumbs.get_breadcrumbs function.
I didn't think this was an unreasonable thing to want – explicit URLs for
each format – but given the amount of fiddling required to get it
functioning, maybe this is a dumb idea? Have I missed something? How do you
set up your URLs and formats?
Many thanks,
Phil Gyford
--
You received this message because you are subscribed to the Google Groups
"Django REST framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-rest-framework/87e4d9e4-bde5-4285-ae66-dfdc32c3384bn%40googlegroups.com.