zlacker

[parent] [thread] 3 comments
1. rattra+(OP)[view] [source] 2024-04-24 17:19:55
oapi-codegen looks pretty cool (it seems I starred it some time ago) but for starters, it's Go only. Stainless does a bunch of languages with more on the way.

You can see an example of the Go code Stainless produces here: https://github.com/cloudflare/cloudflare-go

(I'm the Stainless founder)

replies(1): >>itslen+Ec
2. itslen+Ec[view] [source] 2024-04-24 18:31:07
>>rattra+(OP)
That one only does Go, but it is just one of many OpenAPI generators. I used openapi-generator and was able to produce SDKs for TypeScript (angular and node), Dart (Flutter), Kotlin (andoird), and Swift (iOS). They worked great for our purposes and I really had no complaints or issues.

I guess my question is, what is the key differentiator that Stainless offers above just using OpenAPI and its huge library of existing generators?

https://github.com/OpenAPITools/openapi-generator

replies(1): >>rattra+On
◧◩
3. rattra+On[view] [source] [discussion] 2024-04-24 19:37:56
>>itslen+Ec
If it works great for you, that's great – stick with it!

From what I've seen, a lot of API developers find that openapi-generator flat-out breaks or produces broken code for their OpenAPI spec (varies language-to-language of course).

Beyond hitting the "it just works" mark more often, some other key differentiators:

1. much easier to configure & customize

2. auto-retry with exponential backoff (this is huge for our customers)

3. auto-pagination

4. overall ergonomics of using the SDK

5. internals that look handwritten (some people care, others don't)

6. one-click releases to github & package managers w/ semver, changelogs, etc

7. careful handling of edge cases (eg, will adding a new enum variant cause your Java client to crash?)

8. a long tail of more advanced features, like webhook signature verification, streaming, etc

Thanks for the question – hope this helps :)

replies(1): >>itslen+NQ
◧◩◪
4. itslen+NQ[view] [source] [discussion] 2024-04-24 22:10:11
>>rattra+On
Very helpful. Thanks for the details.
[go to top]