Getting really frustrated with the Firefish API. I'm about to go compare it to the Misskey API and see if it really all is coming from Misskey. Today's example:
If you make a request to /api/user/show, you get a version of the user's profile object that says if you're following them, if they're following you, or if a follow request is pending.
What I expect is that when I make a request to /api/following/create, I get something to reflect the change. I think the best would be return the same user object, so you can see the changes reflected and update your view accordingly.
What you actually get is a version of the user object that does not include the follower/following/follow request info. I am so confused. Like what? Why?
Conversation
Notices
-
Embed this notice
Tyler (robustjumprope@sakurajima.social)'s status on Sunday, 19-Nov-2023 10:01:39 JST Tyler -
Embed this notice
naskya::dev (dev@post.naskya.net)'s status on Sunday, 19-Nov-2023 10:01:38 JST naskya::dev @robustjumprope@sakurajima.social Misskey API is so bad, but it's okay because apparently they don't intend it to be used in 3rd party clients (Misskey lead dev doesn't think Misskey needs 3rd party clients)
Firefish was forked from Misskey and thus inherited all the bad design from the ex-upstream, and yet we want the Firefish API to be used to build 3rd party clients, so this is one of the biggest problems we currently have (along with many others 😥)
I also understand that breaking changes are a burden on client devs (devs need to keep monitoring API changes or their client will suddenly stop working, etc), so this is so nerve-wracking.
My current vision is that we will probably migrate the API to the Mastodon API (with many extensions for Firefish) graaaaaadually and deprecate the Misskey API eventually, but it's just a plan so far. Sorry for your bad experience... -
Embed this notice
Tyler (robustjumprope@sakurajima.social)'s status on Sunday, 19-Nov-2023 11:40:09 JST Tyler @dev@post.naskya.net Thank you for your explanation! I know you're doing a lot of great work on Firefish and it's a very big task to fix the API design. That makes a lot of sense to hear that it was not intended for mobile clients. I can see how some of the design decisions would result from that.
I do think that implementing the Mastodon API will be very helpful!
頑張ってください!:neocat_heart:naskya::dev likes this. -
Embed this notice
Andy (pixel@desu.social)'s status on Sunday, 19-Nov-2023 11:41:18 JST Andy @dev @robustjumprope I do have a suggestion here, that I'm willing to implement in Firefish, if it is wanted.
I was part of the Misskey team (and later the Foundkey fork team) and for the latter, I envisioned a "API v2" system to gradually move the Misskey API to a more sane format. But without having to touch actual endpoint code and without breaking existing APIs.
naskya::dev likes this. -
Embed this notice
naskya::dev (dev@post.naskya.net)'s status on Sunday, 19-Nov-2023 12:31:42 JST naskya::dev @pixel@desu.social @robustjumprope@sakurajima.social That'd be great, but considering the Misskey API will (probably) be discontinued in future, I'd rather enhance the Mastodon API support
-
Embed this notice
Andy (pixel@desu.social)'s status on Sunday, 19-Nov-2023 12:31:43 JST Andy that layer/feature I added mainly concerns the overuse of POST and the missing feature of having route params in the API, but that would already lift a burden off of developers.
-
Embed this notice
naskya::dev (dev@post.naskya.net)'s status on Sunday, 19-Nov-2023 18:27:29 JST naskya::dev @crafti@pleroma.0x68756773.moe @pixel@desu.social @robustjumprope@sakurajima.social I'm sorry if I don't understand the question, but for example, Fedibird extended the Mastodon API and implemented emoji reactions, quotes, antennas, groups, etc., so I don't think the migration is impossible.
-
Embed this notice
crafti (crafti@pleroma.0x68756773.moe)'s status on Sunday, 19-Nov-2023 18:27:30 JST crafti @pixel @dev @robustjumprope perhaps pull a pleroma/akkoma/gotosocial and extend upon it. -
Embed this notice
Andy (pixel@desu.social)'s status on Sunday, 19-Nov-2023 18:27:32 JST Andy @dev @robustjumprope but how do you want to discontinue the Misskey API if the featureset is different compared to Mastodon?
You can create relative compatibility, but every API user won't be able to leverage the full Misskey/Firefish features
-
Embed this notice
crafti (crafti@pleroma.0x68756773.moe)'s status on Sunday, 19-Nov-2023 18:36:19 JST crafti @dev @pixel @robustjumprope Nobody has to follow how Fedibird extended the Mastodon API. You can very well do your own extensions. Even now, the features that Akkoma implemented are different to how Pleroma implemented them later. -
Embed this notice
crafti (crafti@pleroma.0x68756773.moe)'s status on Sunday, 19-Nov-2023 19:41:03 JST crafti @jo @pixel @dev I don't think the Misskey version matters here. Like I said in this thread: Misskey keeps changing things, without proper announcement, without API versioning. And it keeps building upon the same messy architecture.
So whether it is MK v13 or MK v13, something will change unexpectedly in the future and just keeping up just makes me depressed.
naskya::dev likes this. -
Embed this notice
Jo (jo@blahaj.zone)'s status on Sunday, 19-Nov-2023 19:41:04 JST Jo @crafti@pleroma.0x68756773.moe @pixel@desu.social @dev@post.naskya.net @robustjumprope@sakurajima.social Which version of the Misskey API are you using? There were changes to the API that coincided with the release of Misskey 13 in Jan. The new version of Misskey is a backend rewrite so plenty of things broke and are no longer compatible with earlier Misskey forks like Firefish. And unlike FF and Iceshrimp it seems you can run a 1500 user instance without db lags and fall overs.
-
Embed this notice
Ozzy ☮️ (ozzy@firefish.community)'s status on Sunday, 19-Nov-2023 19:55:22 JST Ozzy ☮️ @dev@post.naskya.net @pixel@desu.social @robustjumprope@sakurajima.social this is the way
naskya::dev likes this. -
Embed this notice
naskya::dev (dev@post.naskya.net)'s status on Sunday, 19-Nov-2023 20:00:18 JST naskya::dev @crafti@pleroma.0x68756773.moe It's not just the language barrier though. I can read Japanese but the commit messages are not well-written/helpful in many cases :ameow_nod_melt_cry:
-
Embed this notice
crafti (crafti@pleroma.0x68756773.moe)'s status on Sunday, 19-Nov-2023 20:00:19 JST crafti @dev @jo @pixel Language barrier doesn't help either, you read commits mentioning redis, and that commit actually removes the entire functionality of marking notifications as read. -
Embed this notice
crafti (crafti@pleroma.0x68756773.moe)'s status on Sunday, 19-Nov-2023 20:00:20 JST crafti @jo @dev @pixel I don't wanna "shit"/discredit Syuilo and their team all the time. I wish they took maintaining an API seriously or tried to actually clean up code...
Supporting Misskey feels very annoying. Especially if you're the one having to read the source code, because you get the bare minimum of information of what the API looks like... You as a developer don't know why you don't have an URL of a post, until you find out that its expected that you craft your own. -
Embed this notice
crafti (crafti@pleroma.0x68756773.moe)'s status on Sunday, 19-Nov-2023 20:03:08 JST crafti @dev "improve performance" *removes feature* :woozy_face: naskya::dev likes this. -
Embed this notice
crafti (crafti@pleroma.0x68756773.moe)'s status on Sunday, 19-Nov-2023 20:04:45 JST crafti @dev こちら https://github.com/misskey-dev/misskey/commit/30d6992 naskya::dev likes this.
-
Embed this notice