mirror of
https://github.com/ansible/awx.git
synced 2026-02-26 07:26:03 -03:30
add instructions for generating Swagger/OpenAPI docs
This commit is contained in:
@@ -24,6 +24,7 @@ Have questions about this document or anything not covered here? Come chat with
|
|||||||
* [Start a shell](#start-the-shell)
|
* [Start a shell](#start-the-shell)
|
||||||
* [Create a superuser](#create-a-superuser)
|
* [Create a superuser](#create-a-superuser)
|
||||||
* [Load the data](#load-the-data)
|
* [Load the data](#load-the-data)
|
||||||
|
* [Building API Documentation](#build-documentation)
|
||||||
* [Accessing the AWX web interface](#accessing-the-awx-web-interface)
|
* [Accessing the AWX web interface](#accessing-the-awx-web-interface)
|
||||||
* [Purging containers and images](#purging-containers-and-images)
|
* [Purging containers and images](#purging-containers-and-images)
|
||||||
* [What should I work on?](#what-should-i-work-on)
|
* [What should I work on?](#what-should-i-work-on)
|
||||||
@@ -261,6 +262,20 @@ You can optionally load some demo data. This will create a demo project, invento
|
|||||||
> This information will persist in the database running in the `tools_postgres_1` container, until the container is removed. You may periodically need to recreate
|
> This information will persist in the database running in the `tools_postgres_1` container, until the container is removed. You may periodically need to recreate
|
||||||
this container, and thus the database, if the database schema changes in an upstream commit.
|
this container, and thus the database, if the database schema changes in an upstream commit.
|
||||||
|
|
||||||
|
##### Building API Documentation
|
||||||
|
|
||||||
|
AWX includes support for building [Swagger/OpenAPI
|
||||||
|
documentation](https://swagger.io). To build the documentation locally, run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
(container)/awx_devel$ make swagger
|
||||||
|
```
|
||||||
|
|
||||||
|
This will write a file named `swagger.json` that contains the API specification
|
||||||
|
in OpenAPI format. A variety of online tools are available for translating
|
||||||
|
this data into more consumable formats (such as HTML). http://editor.swagger.io
|
||||||
|
is an example of one such service.
|
||||||
|
|
||||||
### Accessing the AWX web interface
|
### Accessing the AWX web interface
|
||||||
|
|
||||||
You can now log into the AWX web interface at [https://localhost:8043](https://localhost:8043), and access the API directly at [https://localhost:8043/api/](https://localhost:8043/api/).
|
You can now log into the AWX web interface at [https://localhost:8043](https://localhost:8043), and access the API directly at [https://localhost:8043/api/](https://localhost:8043/api/).
|
||||||
|
|||||||
@@ -152,7 +152,10 @@ class TestSwaggerGeneration():
|
|||||||
content_type, resp, request_data = value
|
content_type, resp, request_data = value
|
||||||
if method in node:
|
if method in node:
|
||||||
status_code = str(status_code)
|
status_code = str(status_code)
|
||||||
node[method].setdefault('produces', []).append(content_type)
|
if content_type:
|
||||||
|
produces = node[method].setdefault('produces', [])
|
||||||
|
if content_type not in produces:
|
||||||
|
produces.append(content_type)
|
||||||
if request_data and status_code.startswith('2'):
|
if request_data and status_code.startswith('2'):
|
||||||
# DRF builds a schema based on the serializer
|
# DRF builds a schema based on the serializer
|
||||||
# fields. This is _pretty good_, but if we
|
# fields. This is _pretty good_, but if we
|
||||||
@@ -181,5 +184,5 @@ class TestSwaggerGeneration():
|
|||||||
def teardown_class(cls):
|
def teardown_class(cls):
|
||||||
with open('swagger.json', 'w') as f:
|
with open('swagger.json', 'w') as f:
|
||||||
f.write(force_bytes(
|
f.write(force_bytes(
|
||||||
json.dumps(cls.JSON, cls=i18nEncoder, indent=5)
|
json.dumps(cls.JSON, cls=i18nEncoder)
|
||||||
))
|
))
|
||||||
|
|||||||
Reference in New Issue
Block a user