softwaremill / softwaremill/tapir

[Feature] More advanced OpenApi generator

Open
#1,802 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Scala
Stars
1.5k
Forks
468
Avg merge
5h 37m
Merged PRs (30d)
34

Description

Describe the feature

I tend to use grpc api's quite often and this generates a very simple to use api.
Where each RPC has 1 api call with 1 input object and 1 output object. But for REST there doesn't seem to be such an easy api implementation.

I tried the generator in this project but it feels a bit raw.

Additional information
Before i discovered that you have an sbt OpenApi generator,
i had spend some time on making an OpenApi generator and i got quite far. I'm using the annotation api

But i think it would be a much better idea to port this to the tapir repository so it becomes easier to maintain, because it isn't mustache, and keep up to date.

What do you think of the format of the API it produces?
Would you be interested in a generator like this?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the existing sbt OpenAPI generator and the annotation-based example in samples/client/petstore/scala-tapir/src/main/scala/org/openapitools/client/api/PetApi.scala. Compare the generated API format with the proposed approach, then define whether and how this generator should be ported to the tapir repository.

Written by the indexing model from the issue text.

Assessment

Tech stack
openapi, scala
Domain
api, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.