Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(swagger): add link to show openapi spec #663

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

sripwoud
Copy link

@sripwoud sripwoud commented Feb 2, 2025

Description

Having a formal description of the api as an openapi spec is useful (for integration with other tools/integration that can parse it).
The api already uses @nestjs/swagger to build the openapi spec document. We just need to server.
This PR adds an endpoint to serve openapi.yml at /openapi.yml
And also refactors the js string for the custom swagger ui to add a link to that page.

swagger UI
pic-selected-250202-2249-08

Does this introduce a breaking change?

  • Yes
  • No

Checklist

  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • I have run yarn prettier and yarn lint without getting any errors
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

Important

We do not accept minor grammatical fixes (e.g., correcting typos, rewording sentences) unless they significantly improve clarity in technical documentation. These contributions, while appreciated, are not a priority for merging. If there is a grammatical error feel free to message the team.

Copy link

vercel bot commented Feb 2, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
bandada-docs ✅ Ready (Inspect) Visit Preview 💬 Add feedback Feb 7, 2025 4:30pm
bandada-website ✅ Ready (Inspect) Visit Preview 💬 Add feedback Feb 7, 2025 4:30pm

Copy link
Member

@vplasencia vplasencia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you very much for creating this PR @sripwoud!

I left some comments so that the header UI looks like this.

Screenshot 2025-02-07 at 4 00 48 PM

apps/api/src/swagger-custom-ui.js Outdated Show resolved Hide resolved
Comment on lines +63 to +67
const githubIcon = document.createElement("span")
githubIcon.innerHTML = `
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 98 96"><path fill-rule="evenodd" clip-rule="evenodd" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z" fill="#24292f"/></svg>
`
ghLink.prepend(githubIcon)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since there will be more content in the header, we could remove the icon.

href: "/openapi.yml",
text: "openapi.yml"
})

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can add a separator for the links.

        const separator = El({
            tag: "span",
            text: "|",
            styles: {
                color: "grey"
            }
        })

Comment on lines +75 to +76
customContainer.appendChild(ghLink)
customContainer.appendChild(yamlLink)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
customContainer.appendChild(ghLink)
customContainer.appendChild(yamlLink)
customContainer.appendChild(ghLink)
customContainer.appendChild(separator)
customContainer.appendChild(yamlLink)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants