Ah yes, all though I ve never really experienced HTTP days in their full glory
I’ll look into using it. If it has a github action or easy way to publish it from cli
Ah yes, all though I ve never really experienced HTTP days in their full glory
I’ll look into using it. If it has a github action or easy way to publish it from cli
I do not see how critisms for the JS API docs are relevant for my openapi documentation.
This documentation aims to solve all those problems in a language agnostic way. It descibes the endpoints, the request object, the status, the response object, the authentication needed in visual/text. It allows you test it right from the browser, allows you to copy a working curl command, search for endpoints based on keywords, allows you to import the entire spec into postman/alts.
I ve never had any problems with CF instances but I mostly test with voyager.lemmy.ml
Looks like the best openapi front. I looked into using it, but it didn’t seem free. Too bad this one is outdated. Lemmys API has changed quiet a bit since then.
(Author btw)
Can you expand on this? This was written for Kotlin usage. It automates generating API based on this spec.
I have no idea what you mean with ‘using other approaches to calling the endpoints’
Lemmy has only one API. It’s same API used for lemmy-ui.
This is just a “better” documentation for it.
The API works for for cloudfare instances too.
There is also a swagger ui variant
Yeah anywhere were you would use Java. Scala has a too high adoption cost. Kotlin is better suited for enterprise, has a stronger ecosystem and better interop with Java. I did enjoy scala though when experimented with it. The only thing I missed was the lack of control flow, no labels, continue, break
Yes but now it must wait for acknowledgement of a request (activity), before sending the next one. If one request takes 333ms means you can do max 3 requests per second. Now big instances like lemmy.world have activity above that so instances too far will perpetual lag behind
Mostly because Lemmy has a hard time keeping up with the federation
I genuinely don’t understand how there can be so many languages and all of them be painful to use
What about kotlin?
Yeah KBIN is getting the fundamentals right and at a pretty fast pace. I just don’t like their nomenclature and techstack. It’s also trying to be twitter and reddit at the same time.
Lemmy actually uses it own API, so you would think they would have documentation as a priority. Lemmy gets funded by NLnet (so is KBIN) and they get paid by each released feature. I think they focused too much on adding features, and this feature creep caused big performance issues. Aggregation is still big performance hog that causes instability which probably the biggest problem rn with Lemmy. They also wasted lots of resources into things that don’t scale like the AsyncApi. Before they got hit by the reddit migration, they were even thinking of doing 1.0.0 release, that woulda complicated a lot of things. It’s good that the migration happened, it shook Lemmy devs, probably would have been better if it happened earlier though.
Their approach requires no additional work as it’s fully automated. That’s the biggest reason.
I wrote the routes manually which took some time. And it still needs quite some work for the summaries and descriptions
use the jwt to call /site, the person subsection has the id. That’s how Jerboa does it
This could use indeed some work
openapi spec allows one to specify the authentication, this has not be done already because there is an open issue to include auth in
lemmy-js-client
(I use this to generate the spec) + Need to figure the best approach to convey “elevated” auth endpoints. Endpoints like GetSite where authentication enhances the response.They are actually summaries, they are fine imo. There is an open issue to add the descriptions though.
Yes indeed, things like this should be documented in the description.
This is explicitly mentioned on every request, visually and in the spec.
Query is mentioned when they are query parameters, else it just a request body. This is pretty clear in the text (spec) or visually imo.
GetPersonDetails
is the name of the object if you scroll all the way to the bottom you can inspect it. This more clear in the spec.There is not a single endpoint missing nor its requests.
This could be improved.
Status codes? or the 400 lemmy error? ex:
{ error: "report_reason_required" }
Status codes are the same everywhere, 200/201 or 400 with Lemmy error as response. There is one exception that is 401 that can be thrown for every auth required endpoint where auth fails. But these are standard. Ig this should documented.Now the “LemmyErrorTypes”. This could be improved, but it is hard to, not possible to be automated and tedious to add and frequently changes.
Thanks for the feedback.