this post was submitted on 30 Jun 2023
36 points (97.4% liked)

Lemmy

12519 readers
44 users here now

Everything about Lemmy; bugs, gripes, praises, and advocacy.

For discussion about the lemmy.ml instance, go to [email protected].

founded 4 years ago
MODERATORS
 

Lemmy's API documentation currently appears to be the JS client implementation found here: https://join-lemmy.org/api/

This is very misleading, as these docs document the behavior of the JS client and do not provide a language neutral way to figure out what's going on.

Compare Lemmy's docs with something like the ActivityPub docs https://www.w3.org/TR/activitypub/

Going off ActivityPub, I could actually start to see how it all works and looks together. With Lemmy, I can reason about how the JS client works and do my best, but working with Lemmy you sometimes have to consume the Rust source as well.

So, this raises the barrier of entry for someone wanting to do Lemmy integrations to someone that needs to consume the above docs, plus be comfortable reading JS and Rust.

I saw some older posts from the lemmy devs saying: "Well, writing docs is hard, so it's easier if we generate the docs from our JS client."

They aren't wrong, writing documentation IS hard. If Lemmy is serious about attracting a larger ecosystem, I consider better API documentation to be on the hot path. I'm concerned that the devs are happy with the autogenerated docs above and won't put any effort into improving them. Even worse, the people generating these docs are already familiar with Lemmy, so they probably think the current docs are adequate.

I don't know a quick solution -- raise money to pay someone to write docs? No clue. But, if you want to attract developers to this ecosystem, the current API documentation is insufficient.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 2 points 1 year ago (3 children)

Is there a specific API call you'd like to make?

Maybe someone can reveal that method and endpoint.

[–] [email protected] 3 points 1 year ago (1 children)

No, I was just chewing on various ideas to integrate with Lemmy and was disappointed with the docs I saw. They seemed OK-ish if you wanted to use the JS client, but not great if you want to do something else.

On similar projects, I'm used to seeing OpenAPI/Swagger/etc. where you have docs on the incoming bodies/fields, what values they can contain, etc.

Right now it's really bare bones. I see things like 'auth' OPTIONAL but not really sure what would go in there.

I can RTFS like another poster said, but of course that's not as convenient as "general purpose" API docs with examples / tutorial.

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago) (1 children)

Yeah, I understand what you mean (after a year of exploring the Web Socket).

That lemmy auth value is pulled from a JWT cookie in the browser - which you can access in JS by document.cookie. It allows user-specific API calls (retrieving saved posts, subscribed communities, etc).

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

You can also authenticate via API with the /user/login endpoint to directly receive a JWT. No need to extract from a cookie, though I'll admit that's more convenient for basic fooling around.

load more comments (1 replies)