Contributing
All suggestions welcome :)!
If you’d like to contribute, see the list of issues and pick one! Or report your own. If you have an idea you’d like to discuss, that’s always a good option.
If you are having doubts on the why or how something works, don’t hesitate to ask a question on discourse or via github. This probably means that the documentation, scaladocs or code is unclear and can be improved for the benefit of all.
Conventions
Enumerations
Scala 3 introduces enum
, which can be used to represent sealed hierarchies with simpler syntax, or actual “true” enumerations,
that is parameterless enums or sealed traits with only case objects as children. Tapir needs to treat the latter differently,
in order to allow using OpenAPI enum
elements and derive JSON codecs which represent them as simple values (without discriminator).
Let’s use the name enumeration
in Tapir codebase to represent these “true” enumerations and avoid ambiguity.
Acknowledgments
Tuple-concatenating code is copied from akka-http
Parts of generic derivation configuration is copied from circe
Implementation of mirror for union and intersection types are originally implemented by Iltotore in this gist
Tapir logo & stickers have been drawn by impurepics.