miLibris / flask-rest-jsonapi

Flask extension to build REST APIs around JSONAPI 1.0 specification.
http://flask-rest-jsonapi.readthedocs.io
MIT License
597 stars 153 forks source link

Is there any maintained fork #188

Open iamareebjamal opened 4 years ago

iamareebjamal commented 4 years ago

I realize the tooling for JSONAPI is not very popular, but we have to maintain our code which is using the library heavily. It's known that this repo is not maintained anymore and there are a lot of issues in it. Does anyone have a link to a maintained fork? Or is there any maintained library with migration path?

If not, then community can decide to fork the project and volunteers can help in getting it up to date?

multimeric commented 4 years ago

Hi, I've been maintaining a fork over at https://github.com/TMiguelT/flapison. I've made and merged quite a number of PRs. Please feel free to contribute.

Unfortunately it's notoriously difficult to publicise a fork. I don't even think Google indexes them. So if you can think of a good way for me to do that, let me know.

iamareebjamal commented 4 years ago

Can you request it to be added here? https://jsonapi.org/implementations/#server-libraries-python

Seeing that JSONAPI is not that popular, this is the most useful resource to look at when searching for server implementations

multimeric commented 4 years ago

Oh, that's a good idea. I'll see if I can PR that into the jsonapi docs.

multimeric commented 4 years ago

PR submitted. Hopefully it will get merged and it will clear things up.

akira-dev commented 4 years ago

Hello, I will have some time to review PR during next week I hope. So new release is coming soon. I am very sorry for my lack of time to maintain this repo.

multimeric commented 4 years ago

Oh, hi! While you're around, is there any way I can help with the maintenance of this library? I'm happy to help review and merge PRs etc, or alternatively if you have time now would you accept a PR containing all the downstream changes from flapison? It contains all the PRs from me into this library (7 of them), and some other changes like running black on the whole repo. I understand if you don't want all of my changes though.

iamareebjamal commented 4 years ago

Hi, it would also make sense to pick some contributors (@TMiguelT is extremely active) to maintain the library when you are inactive. This will concentrate the efforts in one place and derisk the library as it will be a community effort then?

mahenzon commented 4 years ago

Hi there! @TMiguelT I'm glad to see you here (I think we've met somewhere within marshmallow-jsonapi). My colleague (@Znbiz) and I have been working on a fork too.

The fact is that we've developed it for our production. Our goal here was to achieve full compatibility with our huge legacy codebase, so we can rewrite the existing API by one resource at a time. At that point we faced the fact, that we need:

At this point we could say, that it needs a lot of work.

So, we came up to this solution:

Finally!

There's https://github.com/AdCombo/flask-rest-jsonapi that has these improvenets:

(for custom filtering/sorting you need to define a new method in your marshmallow field as described in docstrings)

And a separate library https://github.com/AdCombo/combojsonapi/, which has:


As I see, there's already some work going in the https://github.com/TMiguelT/flapison, that's cool. So I think maybe we could discuss here some suggestions / ideas how we can all together produce a better library, based on the flask-rest-jsonapi, that fits all developers' needs, is actively maintained and has cool and useful features!

Looking forward to hearing from you!

multimeric commented 4 years ago

Hi @mahenzon. It looks like you've done some excellent work refactoring flask-rest-jsonapi. Plugins are a great idea, and moving a lot of the SQLAlchemy data layer into a shared module is something I was meaning to do myself.

We should obviously try to merge the two forks. Your changes are much more fundamental so I'm happy to try to rebase my changes against yours and make some PRs.

I have one reservation, however. I'm a tad sceptical of open source projects maintained under company organisations, because they tend to languish once the initial development effort is finished, and stop paying attention to issues and PRs. After all, that's what's happened with miLibris who originally wrote this. Do you have any thoughts on how maintenance might continue in the long term? Would you be open to adding collaborators even to your organisation repo? If not I can see similar problems to miLibris/flask-rest-jsonapi happening in the future.

mahenzon commented 4 years ago

Hi again @TMiguelT!

I'm really glad to see that you like it and are interested in collaborating! And about your concerns regarding maintenance: we welcome collaborators to our repos! Sure, no one is interested in another stalled fork.

I've just invited you to both https://github.com/AdCombo/flask-rest-jsonapi and https://github.com/AdCombo/combojsonapi as a collaborator with write access. Feel free to push changes and open PRs. We definitely want to see some improvements and welcome collaborators! It'll be cool to see your changes from flapison

multimeric commented 4 years ago

Okay that sounds great. I'll try to find time to put in some PRs before too long. Thanks for the collaboration invitations also, I can't accept them just yet because of 2FA issues but I should be able to eventually.

One other thought, do you think it would be helpful to rename your repo from flask-rest-jsonapi so that it's easier to search and/or allows it to be added to the JSON:API site as a separate project? Those are the main reasons I renamed my fork. I also think it makes it clearer to users that it's not the exact same project, especially in case your API diverges from upstream.

mahenzon commented 4 years ago

Yeah, I agree. It's definitely doable. We just need to come up with some new name. Sure, it'll help in different ways. Give us a day to deside. The results will be in this issue https://github.com/AdCombo/flask-rest-jsonapi/issues/10

Waiting for you to contribute, thanks!

buckmaxwell commented 3 years ago

It seems perhaps this repository is being maintained? what is the latest on this.

mahenzon commented 3 years ago

hi @buckmaxwell! this fork is actively maintained https://github.com/AdCombo/flask-combo-jsonapi

more detailed in the comment above