springwolf / springwolf-core

Automated documentation for event-driven applications built with Spring Boot
https://www.springwolf.dev
Apache License 2.0
234 stars 66 forks source link

Configurable URL in Springwolf UI #757

Closed madrimas closed 2 weeks ago

madrimas commented 2 months ago

It would be nice to have an option to configure custom URL for Springwolf UI. E.g.: springwolf.ui.url=/custom/url

Without the feature there is no option to use the UI in multi-services projects - the flagship example is k8s environment with many microservices based on the same baseUrl. So I want to have a possibility to configure UI url like that: baseUrl + myMicroserviceId + ui.html.

From my perspective the solution can be based on Swagger UI solution.

I don't know if any alternative will be sufficient, from my perspective is a missing key feature.

github-actions[bot] commented 2 months ago

Welcome to Springwolf. Thanks a lot for reporting your first issue. Please check out our contributors guide and feel free to join us on discord.

sam0r040 commented 2 months ago

Hi @madrimas, do you ask for an option to select different api backend in a single ui. Similar to the option in swagger (https://petstore3.swagger.io/):

image

Or do want to manually configure the springwolf paths by setting the spring context path property? Or is it something different? If so, could you point us to the swagger docs?

madrimas commented 2 months ago

Hi @sam0r040! Thanks for quick reply!

Something different. I want to set custom path without setting spring context path in whole app. In swagger UI there is: springdoc.swagger-ui.path - where you can set custom path, in my case {myMicroserviceId} + custom-path

then I can get swagger UI in my browser via such URL: {someBaseUrl, eg. k8s cluster, or localhost} / {myMicroserviceId} / custom-path / swagger-ui / index.html, e.g. localhost/pet-service/custom-path/swagger-ui/index.html

In Springwolf I want to configure it in the similar way, e.g.: springwolf.ui.path=/{myMicroserviceId}/custom-path/

then I'll get Springwolf UI in my browser via such URL: localhost/pet-service/custom-path/springwolf/asyncapi-ui.html instead of localhost/springwolf/asyncapi-ui.html

So, as I said, it's similar case to context path, but without setting it (due to some requirements, I cannot set context path in the whole app).

madrimas commented 1 month ago

so @sam0r040 how do you see that? Is there a possibility to add such feature?

sam0r040 commented 1 month ago

Hi @madrimas, we are currently looking into this feature.

madrimas commented 1 month ago

Hi @sam0r040, that's great! I look forward to hearing more good news

github-actions[bot] commented 1 month ago

The change is staged for release and will be part of the next release.

If you want to try and verify it in your application today, use the latest 1.X.0-SNAPSHOT build as described in our README.md > Testing SNAPSHOT version

Thank you for the report/contribution!

madrimas commented 1 month ago

I've tested the snapshot, looks brilliant, thanks!

After release I'll check it once again and then close the issue.

github-actions[bot] commented 2 weeks ago

The change is available in the latest release. 🎉

Thank you for the report/contribution and making Springwolf better!