From b78a2a71201696d7124b8a8cb55a96d901e46e14 Mon Sep 17 00:00:00 2001 From: Ryan P Kilby Date: Fri, 15 Nov 2019 14:59:07 -0800 Subject: [PATCH] Remove drf-autodocs and Apiary 3rd party packages --- docs/community/third-party-packages.md | 2 -- docs/img/apiary.png | Bin 55554 -> 0 bytes docs/topics/documenting-your-api.md | 42 ------------------------- 3 files changed, 44 deletions(-) delete mode 100644 docs/img/apiary.png diff --git a/docs/community/third-party-packages.md b/docs/community/third-party-packages.md index ea5d6b854..c4b567a5f 100644 --- a/docs/community/third-party-packages.md +++ b/docs/community/third-party-packages.md @@ -254,7 +254,6 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque * [cookiecutter-django-rest][cookiecutter-django-rest] - A cookiecutter template that takes care of the setup and configuration so you can focus on making your REST apis awesome. * [djangorestrelationalhyperlink][djangorestrelationalhyperlink] - A hyperlinked serializer that can can be used to alter relationships via hyperlinks, but otherwise like a hyperlink model serializer. -* [django-rest-swagger][django-rest-swagger] - An API documentation generator for Swagger UI. * [django-rest-framework-proxy][django-rest-framework-proxy] - Proxy to redirect incoming request to another API server. * [gaiarestframework][gaiarestframework] - Utils for django-rest-framework * [drf-extensions][drf-extensions] - A collection of custom extensions @@ -315,7 +314,6 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque [djangorestframework-rapidjson]: https://github.com/allisson/django-rest-framework-rapidjson [djangorestframework-chain]: https://github.com/philipn/django-rest-framework-chain [djangorestrelationalhyperlink]: https://github.com/fredkingham/django_rest_model_hyperlink_serializers_project -[django-rest-swagger]: https://github.com/marcgibbons/django-rest-swagger [django-rest-framework-proxy]: https://github.com/eofs/django-rest-framework-proxy [gaiarestframework]: https://github.com/AppsFuel/gaiarestframework [drf-extensions]: https://github.com/chibisov/drf-extensions diff --git a/docs/img/apiary.png b/docs/img/apiary.png deleted file mode 100644 index 923d384ebb66d833b13b9971cda69eb718651c1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55554 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 diff --git a/docs/topics/documenting-your-api.md b/docs/topics/documenting-your-api.md index d7998dea0..6fcb011fd 100644 --- a/docs/topics/documenting-your-api.md +++ b/docs/topics/documenting-your-api.md @@ -140,42 +140,6 @@ This also translates into a very useful interactive documentation viewer in the --- -### DRF AutoDocs - -Oleksander Mashianovs' [DRF Auto Docs][drfautodocs-repo] automated api renderer. - -Collects almost all the code you written into documentation effortlessly. - -Supports: - - * functional view docs - * tree-like structure - * Docstrings: - * markdown - * preserve space & newlines - * formatting with nice syntax - * Fields: - * choices rendering - * help_text (to specify SerializerMethodField output, etc) - * smart read_only/required rendering - * Endpoint properties: - * filter_backends - * authentication_classes - * permission_classes - * extra url params(GET params) - -![whole structure](http://joxi.ru/52aBGNI4k3oyA0.jpg) - ---- - -#### Apiary - -There are various other online tools and services for providing API documentation. One notable service is [Apiary][apiary]. With Apiary, you describe your API using a simple markdown-like syntax. The generated documentation includes API interaction, a mock server for testing & prototyping, and various other tools. - -![Screenshot - Apiary][image-apiary] - ---- - ## Self describing APIs The browsable API that REST framework provides makes it possible for your API to be entirely self describing. The documentation for each API endpoint can be provided simply by visiting the URL in your browser. @@ -241,16 +205,10 @@ To implement a hypermedia API you'll need to decide on an appropriate media type [cite]: https://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven [drf-yasg]: https://github.com/axnsan12/drf-yasg/ [image-drf-yasg]: ../img/drf-yasg.png -[drfautodocs-repo]: https://github.com/iMakedonsky/drf-autodocs -[django-rest-swagger]: https://github.com/marcgibbons/django-rest-swagger [swagger]: https://swagger.io/ [open-api]: https://openapis.org/ -[rest-framework-docs]: https://github.com/marcgibbons/django-rest-framework-docs -[apiary]: https://apiary.io/ [markdown]: https://daringfireball.net/projects/markdown/syntax [hypermedia-docs]: rest-hypermedia-hateoas.md -[image-django-rest-swagger]: ../img/django-rest-swagger.png -[image-apiary]: ../img/apiary.png [image-self-describing-api]: ../img/self-describing.png [metadata-docs]: ../api-guide/metadata/