Commit Graph

10 Commits

Author SHA1 Message Date
Pascal Bleser d73c6b58a6 groupware: more API examples 2026-02-04 09:41:03 +01:00
Pascal Bleser 916eb6d110 groupware: change Makefile to use groupware-apidocs instead of go-swagger 2026-02-04 09:41:03 +01:00
Pascal Bleser 531e50fb73 API documentation changes for groupware-apidocs
* add example generator infrastructure, with some examples for pkg/jmap
   and pkg/groupware, with more needing to be done

 * alter the apidoc Makefile to stop using go-swagger but, instead, use
   the openapi.yml file that must be dropped into that directory using
   groupware-apidocs (will improve the integration there later)

 * add Makefile target to generate examples

 * bump redocly from 2.4.0 to 2.14.5

 * introduce Request.PathParam() and .PathParamDoc() to improve API
   documentation, as well as future-proofing

 * improve X-Request-ID and Trace-Id header handling in the middleware
   by logging it safely when an error occurs in the middleware
2026-02-04 09:40:23 +01:00
Viktor Scharf de01c1e75c fixed connection reset issue. adapted make file to generate swagger docs on mac 2026-02-04 09:40:21 +01:00
Pascal Bleser 0ef3af4e19 groupware: add mock endpoints for addressbooks and contacts 2026-02-04 09:40:21 +01:00
Pascal Bleser 3968eedcc5 docs(groupware): OpenAPI improvements
* refactor some pkg/jmap and groupware methods to make more sense from
   an API point-of-view

 * add path parameter documentation, but automate it by injecting their
   definition into the OpenAPI YAML tree that is extracted from the
   source code using go-swagger as it is too cumbersome, repetitive and
   error-prine to document them in the source code; wrote a TypeScript
   file apidoc-process.ts to do so

 * add generating an offline HTML file for the OpenAPI documentation
   using redocly, and injecting a favicon into the resulting HTML; wrote
   a TypeScript file apidoc-postprocess-html.ts to do so
2026-02-04 09:40:20 +01:00
Pascal Bleser 42a4c5c156 groupware: swagger API documentation improvements
* add more documentation for properties

 * fixes after a bit of trial-and-error with go-swagger

 * fix email filter marshalling when there are no search criteria

 * introduce an apidoc.yml that contains Swagger data and is merged when
   generating the swagger.yml from sources
2026-02-04 09:40:20 +01:00
Pascal Bleser 04336a9c3a refactored the Session object, refactored the services/groupware directory, and started Swagger documentation implementation 2026-02-04 09:40:20 +01:00
Pascal Bleser 46690c81b3 add an auth-api service to make an exemplary implementation of an external authentication API for third party services such as Stalwart 2026-02-04 09:40:19 +01:00
Pascal Bleser 71ed48ace4 WIP: initial implementation of the groupware service 2026-02-04 09:40:19 +01:00