woodpecker/docs/docs/92-development
Martin W. Kirst 14177635b6
Update swagger API specification (#1782)
# Summary

This PR drops the outdated former swagger.yaml/json and introduced
automatic API document generation from Go code.
The generated code is also used to generate documentation/markdown for
the community page,
as well as enable the Woodpecker server to serve a Swagger Web UI for
manual tinkering.

I did opt-in for gin-swagger, a middleware for the Gin framework, to
ease implementation and have a sophisticated output.
This middleware only produces Swagger v2 specs. AFAIK the newer OpenApi
3x tooling is not yet that mature,
so I guess that's fine for now.

## Implemenation notes

- former swagger.json files removed
- former // swagger godocs removed
- introduced new dependency gin-swagger, which uses godoc annotations on
top of Gin Handler functions.
- reworked Makefile to automatically generate Go code for the server
- introduce new dependency go-swagger, to generate Markdown for
documentation purposes
- add a Swagger Web UI, incl. capabilities for manual API exploration
- consider relative root paths in the implementation
- write documentation for all exposed API endpoints
- incl. API docs in the community website (auto-generated)
- provide developer documentation, for the Woodpecker authors
- no other existing logic/code was intentionally changed

---------

close #292

---------

Co-authored-by: qwerty287 <80460567+qwerty287@users.noreply.github.com>
Co-authored-by: 6543 <6543@obermui.de>
2023-06-03 21:38:36 +02:00
..
01-getting-started.md Docs: make sure shell examples can be copied (#1670) 2023-03-24 18:18:14 +01:00
03-ui.md Add a sentence regarding translations to the development docs (UI page) (#1459) 2022-12-21 14:45:41 +01:00
04-docs.md Replace yarn with pnpm (#1240) 2022-10-08 16:15:07 +02:00
05-architecture.md Rename remote to forge (#1357) 2022-11-05 00:35:06 +01:00
06-guides.md Pin official default clone image (#1526) 2023-01-10 17:34:21 +01:00
07-translations.md Support localized web UI (#912) 2022-05-16 21:18:48 +02:00
08-swagger.md Update swagger API specification (#1782) 2023-06-03 21:38:36 +02:00
_category_.yml Improve dev docs (#636) 2021-12-21 10:52:10 +01:00
ui-proxy.svg Improve dev docs (#636) 2021-12-21 10:52:10 +01:00
vscode-debug.png Add development docs (#610) 2021-12-21 04:45:41 +01:00
vscode-run-test.png Add development docs (#610) 2021-12-21 04:45:41 +01:00
woodpecker-architecture.png Add development docs (#610) 2021-12-21 04:45:41 +01:00