this post was submitted on 24 Jun 2023
6 points (100.0% liked)

Lemmy App Development

728 readers
1 users here now

A place for Lemmy builders to chat about building apps, clients, tools and bots for the Lemmy platform.

On-Topic:

Off-Topic:

founded 2 years ago
MODERATORS
 

i have requests to fetch comment and post data, but i'm struggling to work out how to build a tree from the responses? do i fetch comments with arg parent_id to get a comment's children, and do so recursively for those comments returned that themselves have comments?

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

so "path" is a decimal separated list of comment ids? docs say nothing, but it looks like that.

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

chiming in here because I’m trying to figure this out too. If there’s say, thousands of comments, and I don’t want to get all of them at once, how would I sort them based off the path? I don’t want to miss any replies to comments that are loaded, and it doesn’t appear that comments returned are sorted or grouped together in any way by default

[–] [email protected] 2 points 2 years ago (1 children)

interesting question. do you mean because if you use limit, and as results are returned unsorted, you might end up with children comments without their parents? have you actually had a go using limit to fetch from your 1000s of comments?

[–] [email protected] 1 points 2 years ago

Yep exactly, I tested it and I do end up with orphaned comments no matter what I set as "limit" or "sort" (as long as limit is less than the total amount of comments). It's my guess that fetching a large list of comments would be slower than fetching a few, otherwise I'd just get all the comments in one go.

[–] Cr4yfish 2 points 2 years ago

Pretty late to the party here, but I have an answer for you. There another parameter called "depth", you have to set that to "1" on the initial call. Then you only get "root" comments. Then, for each root comment, you call the API again with the parent id of said comment with the "depth" parameter set to depth+1 until there are no more comments.

So basically, you have to use recursion. If you want I can give you a code example from my App.

[–] [email protected] 1 points 2 years ago (1 children)

it doesn’t appear that comments returned are sorted or grouped together in any way by default

Have you tried sort parameter?

[–] [email protected] 1 points 2 years ago (1 children)

Yes, I still end up with orphaned comments that have no parent in the results regardless of the sort method

[–] [email protected] 1 points 2 years ago

Can you share the reproducible requests/URLs?

[–] [email protected] 1 points 2 years ago

thanks a lot for sharing the link. they should put it in the docs for path!