mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-05-16 13:53:44 +03:00
Adding release notes
This commit is contained in:
parent
f99a87e5e6
commit
2deb6b42f1
|
@ -29,12 +29,71 @@ If you use REST framework commercially and would like to see this work continue,
|
|||
**[signing up for a paid plan][funding]**.
|
||||
|
||||
|
||||
TODO: UPDATE SPONSORS.
|
||||
<ul class="premium-promo promo">
|
||||
<li><a href="http://jobs.rover.com/" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/rover_130x130.png)">Rover.com</a></li>
|
||||
<li><a href="https://getsentry.com/welcome/" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/sentry130.png)">Sentry</a></li>
|
||||
<li><a href="https://getstream.io/try-the-api/?utm_source=drf&utm_medium=banner&utm_campaign=drf" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/stream-130.png)">Stream</a></li>
|
||||
<li><a href="https://auklet.io" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/auklet-new.png)">Auklet</a></li>
|
||||
<li><a href="https://rollbar.com" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/rollbar2.png)">Rollbar</a></li>
|
||||
<li><a href="https://cadre.com" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/cadre.png)">Cadre</a></li>
|
||||
<li><a href="https://loadimpact.com/?utm_campaign=Sponsorship%20links&utm_source=drf&utm_medium=drf" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/load-impact.png)">Load Impact</a></li>
|
||||
<li><a href="https://hubs.ly/H0f30Lf0" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/kloudless.png)">Kloudless</a></li>
|
||||
</ul>
|
||||
<div style="clear: both; padding-bottom: 20px;"></div>
|
||||
|
||||
*We'd like to say thanks in particular our premium backers, [Rover](http://jobs.rover.com/), [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=drf&utm_medium=banner&utm_campaign=drf), [Machinalis](https://hello.machinalis.co.uk/), and [Rollbar](https://rollbar.com).*
|
||||
*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Rover](http://jobs.rover.com/), [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=drf&utm_medium=banner&utm_campaign=drf), [Auklet](https://auklet.io/), [Rollbar](https://rollbar.com), [Cadre](https://cadre.com), [Load Impact](https://loadimpact.com/?utm_campaign=Sponsorship%20links&utm_source=drf&utm_medium=drf), and [Kloudless](https://hubs.ly/H0f30Lf0).*
|
||||
|
||||
---
|
||||
|
||||
## In-built OpenAPI schema support
|
||||
|
||||
REST framework now has a first-pass at directly including OpenAPI schema support.
|
||||
|
||||
Specifically:
|
||||
|
||||
* There are now `OpenAPIRenderer`, and `JSONOpenAPIRenderer` classes that deal with encoding `coreapi.Document` instances into OpenAPI YAML or OpenAPI JSON.
|
||||
* The `get_schema_view(...)` method now defaults to OpenAPI YAML, with CoreJSON as a secondary
|
||||
option if it is selected via HTTP content negotiation.
|
||||
* There is a new management command `generateschema`, which you can use to dump
|
||||
the schema into your repository.
|
||||
|
||||
Here's an example of adding an OpenAPI schema to the URL conf:
|
||||
|
||||
```python
|
||||
from rest_framework.schemas import get_schema_view
|
||||
from rest_framework.renderers import JSONOpenAPIRenderer
|
||||
|
||||
schema_view = get_schema_view(
|
||||
title='Server Monitoring API',
|
||||
url='https://www.example.org/api/',
|
||||
renderer_classes=[JSONOpenAPIRenderer]
|
||||
)
|
||||
|
||||
urlpatterns = [
|
||||
url('^schema.json$', schema_view),
|
||||
...
|
||||
]
|
||||
```
|
||||
|
||||
And here's how you can use the `generateschema` management command:
|
||||
|
||||
```
|
||||
$ python manage.py generateschema --format openapi > schema.yml
|
||||
```
|
||||
|
||||
## Composable permission classes
|
||||
|
||||
You can now compose permission classes using the and/or operators, `&` and `|`.
|
||||
|
||||
For example...
|
||||
|
||||
```python
|
||||
permission_classes = [IsAuthenticated & (ReadOnly | IsAdmin)]
|
||||
```
|
||||
|
||||
If you're using custom permission classes then make sure that you are subclassing
|
||||
from `BasePermission` in order to enable this support.
|
||||
|
||||
## ViewSet _Extra Actions_ available in the Browsable API
|
||||
|
||||
Following the introduction of the `action` decorator in v3.8, _extra actions_ defined on a ViewSet are now available
|
||||
|
@ -44,10 +103,6 @@ from the Browsable API.
|
|||
|
||||
When defined, a dropdown of "Extra Actions", appropriately filtered to detail/non-detail actions, is displayed.
|
||||
|
||||
## In-built OpenAPI schema support
|
||||
|
||||
TODO
|
||||
|
||||
---
|
||||
|
||||
## Deprecations
|
||||
|
@ -92,17 +147,29 @@ For function based views the `@schema` decorator can be used to exclude the view
|
|||
|
||||
## Minor fixes and improvements
|
||||
|
||||
There are a large number of minor fixes and improvements in this release. See the [release notes](release-notes.md) page
|
||||
for a complete listing.
|
||||
There are a large number of minor fixes and improvements in this release. See the [release notes](release-notes.md) page for a complete listing.
|
||||
|
||||
|
||||
## What's next
|
||||
|
||||
We're planning to iteratively working towards OpenAPI becoming the standard schema
|
||||
representation. This will mean that the `coreapi` dependency will gradually become
|
||||
removed, and we'll instead generate the schema directly, rather than building
|
||||
a CoreAPI `Document` object.
|
||||
|
||||
TODO...
|
||||
OpenAPI has clearly become the standard for specifying Web APIs, so there's not
|
||||
much value any more in our schema-agnostic document model. Making this change
|
||||
will mean that we'll more easily be able to take advantage of the full set of
|
||||
OpenAPI functionality.
|
||||
|
||||
This will also make a wider range of tooling available.
|
||||
|
||||
We'll focus on continuing to develop the `apistar` library and client tool into
|
||||
a recommended option for generating API docs, validating API schemas, and
|
||||
providing a dynamic client library.
|
||||
|
||||
[funding]: funding.md
|
||||
[gh5886]: https://github.com/encode/django-rest-framework/issues/5886
|
||||
[gh5705]: https://github.com/encode/django-rest-framework/issues/5705
|
||||
[openapi]: https://www.openapis.org/
|
||||
[sponsors]: https://fund.django-rest-framework.org/topics/funding/#our-sponsors
|
||||
|
|
|
@ -65,6 +65,7 @@ pages:
|
|||
- 'Contributing to REST framework': 'community/contributing.md'
|
||||
- 'Project management': 'community/project-management.md'
|
||||
- 'Release Notes': 'community/release-notes.md'
|
||||
- '3.9 Announcement': 'community/3.9-announcement.md'
|
||||
- '3.8 Announcement': 'community/3.8-announcement.md'
|
||||
- '3.7 Announcement': 'community/3.7-announcement.md'
|
||||
- '3.6 Announcement': 'community/3.6-announcement.md'
|
||||
|
|
Loading…
Reference in New Issue
Block a user