Hey Ktorians, I was using <https://tegral.zoroark....
# ktor
a
Hey Ktorians, I was using https://tegral.zoroark.guru/docs/modules/core/openapi/ for swagger/openapi functionality however the author doesn't anticipate working on the Tegral framework anytime soon. (e.g upgrading it to 3.x) I really like its ease of use and the DSL it had to decorate routes. What are some of the better options out there? I've looked around of course, but nothing stands out as being as straightforward.
r
👍 2
Our team has had some pretty good success integrating with that project for openapi integration ontop of ktor routes
a
@RJ Garcia Thank you for this. I haven’t come across this one.
đź’Ş 1
r
ya, it's pretty great, we've worked extensively with it and created custom plugins and such, it's very extendable
a
Ktor 3 tegral support is on 0.0.5-SNAPSHOT. Unfortunately you have to use sonatype snapshots repository to get this artifact. I don’t know why the maintainer is not releasing it to maven central. Check https://github.com/utybo/Tegral/issues/100
a
@Anastasios Georgousakis Good to know, but concerning for using it long term.
@RJ Garcia I've started applying SMILEY4 and it's straightforward. The one thing I miss about Tegral is that its DSL was less invasive. e.g it didn't need to wrap the native
get
call. That said, thank you for the rec.
r
nice, ya, we've been pretty happy with it. We initially found some issues related to generating discriminated unions to generate correctly, but we were able to submit some patches and create custom plugins that solved our needs, and it was honestly a good experience
a
I also started to migrate my endpoints to SMILEY4. It is almost the same, little more verbose but in a nice way. It also supports kotlinx serialization a feature that Tegral didn’t have. What i liked more with Tegral was that you describe the documentation at the end of route dsl so the implementation of the route which is more important was at the top of route dsl
r
ya def agree that it creates more inline noise, but I also started defining each route as an individual named function instead of a bunch of route("") {} within a routing {} context which mitigated that readability issue and also made quick code navigation to specific routes a lot faster