this post was submitted on 28 Nov 2021
24 points (100.0% liked)
Lemmy
12531 readers
30 users here now
Everything about Lemmy; bugs, gripes, praises, and advocacy.
For discussion about the lemmy.ml instance, go to !meta@lemmy.ml.
founded 4 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Docs are pretty bad, let me give you a start,
To get the first page of post of a community,
You can paste that json object in a formater somewhere to get an idea of the shape of the data.
To find the other endpoints ignore the javascript docs. They are to hard to read.
Look at, the api_routes file. https://github.com/LemmyNet/lemmy/blob/main/src/api_routes.rs
Now you should be able to put two and two together to get the whole picture.
How are the docs bad? They exactly match what we are using.
Several ways:
deleteCommunity()
is "Delete a community." In what circumstances may I delete a community? What authentication needs to be performed before this function is called? What response should I expect if the deletion failed?DeleteCommunity
andRemoveCommunity
? Okay, so only an admin can remove a community, but like... what do these things actually do?likePost
tells you part of the URL, and the method. You have to click through toCreatePostLike
to see the shape of the request body, andPostResponse
(and thenPostView
) to see the expected response... but only on success. For errors, I have no idea. I got down intowrapper()
, but it looks like it simply may not implement error handling at all. Figuring out the URL is another slog, this time throughbuildFullUrl()
and the constructor.In short: The API isn't really documented, and building a new API client requires reverse engineering the JavaScript one.
Certainly, writing documentation is work. But the decision to stop doing it externalizes and multiplies the hassle -- it shifts from the Lemmy developers needing to maintain documentation once, to any programmer wishing to interact with Lemmy needing to RE the JS client, every time.
Autogenerating Swagger documentation may be one way to reduce the burden on the Lemmy maintainers.
Click on the form, and it tells you exactly what are the required fields, and the output type for what you're getting back.
Except for the exact endpoints (which are linked directly in every method description), every single input and output is fully expandable and described.
It doesn't require reverse engineering anything, just click a few links.
Well, I can see that this isn't going to be a productive conversation, so I'm out.
I'll just leave you with this: you have two people here who agree that docs need significant work, and I gave a detailed list of specific things that need addressing. Ignoring half the issues to say, essentially, "you're wrong, just click around" is not helpful.