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.

  • RoundSparrow
    link
    fedilink
    English
    arrow-up
    6
    ·
    edit-2
    1 year ago

    I agree. Rate-limiting 503 responses, parameters unclear.

    I think a bash script with curl/wget showing all the API calls and also having it as a way to test servers would be good. The official testing scripts use the Javascript library, but I often have to go to the Rust code to really understand he parameters.

    I also often just go to my own instance and grep the logs of lemmy_server to reverse-engineer lemmy-ui behavior.

    • yarr@lemmy.fmhy.mlOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 year ago

      Your experience mirrors mine, where you must refer to the Rust and/or JS code to have a chance in hell.

      • kaseijin@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        Sadly, I think the rust codebase will be a major limiting factor in velocity of the project (Lemmy). I wouldn’t be surprised if someone were to re-implement the server in a plebian language where 1000x more developers can contribute.