ropensci / taxize

A taxonomic toolbelt for R
https://docs.ropensci.org/taxize
Other
270 stars 61 forks source link

Migrating name reconciliation and resolution to https://github.com/gnames/gnames #893

Open dimus opened 2 years ago

dimus commented 2 years ago

Hi @sckott I am getting close to making a stable v1.0.0 for GNverifier (+ GNames, GNmatcher). Currently I have a v1.0.0-RC1, and, if all goes well, I will release v1.0.0 (with, probably, /api/v1) in the last week of May 2022, or the first week of June.

This brings a question about https://resolver.globalnames.org. I know that Taxize uses its API, and it was serving us well so far. However the project's code is dated, and is about 30 times slower than GNverifier. Also from time to time it gets into Denial of Service mode, if people start to pound it too much. The new code is much more scalable and reliable.

Because of that I would like to start sunsetting resolver.globalnames.org slowly when GNverifier & Co will reach v1.0.0. How do you feel about migrating to the new REST api after https://github.com/gnames/gnames v1.0.0 is out? Its current description is at https://apidoc.globalnames.org/gnames-beta, and it will migrate to https://apidoc.globalnames.org/gnames when it is ready for /api/v1. I suspect that sunsetting will take all 2022, and may be, most of 2023, depending on how fast people will migrate to new API.

I am cheating a little, because /api/v1 exists already, but practically noone uses it anymore, so I feel it is safe to move /api/v0 to /api/v1 without making people angry. Then I can synchronize API version with the app version, if needed.

sckott commented 2 years ago

Hi @dimus 👋🏽

I've moved on to a new job and @zachary-foster is the new maintainer. Zach, what do you think? You could move to the new API or if you want to limit taxize scope you could drop it. Up to you.

zachary-foster commented 2 years ago

I will have to take a look and perhaps learn more about APIs in general, but I would like to keep this functionality in taxize.

dimus commented 2 years ago

Congratulations on your new job @sckott! @zachary-foster I did try my best to keep API simple especially for GET: https://verifier.globalnames.org/api/v0/verifications/Monochamus%20galloprovincialis?data_sources=1%7C12%7C170&all_matches=true

The only thing that will change in a few weeks is /api/v0 -> /api/v1

dimus commented 2 years ago

@zachary-foster, I moved GN tools to v1.0.0, the APIs are described here:

name verification: https://apidoc.globalnames.org/gnames

name finding: https://apidoc.globalnames.org/gnfinder

name parsing: https://apidoc.globalnames.org/gnparser

And the example I gave before is still working:

https://verifier.globalnames.org/api/v1/verifications/Monochamus%20galloprovincialis?data_sources=1%7C12%7C170&all_matches=true

I am planning to keep v1.0.0 to be stable and backward compatible. In case if there will be a necessity to create v2 I will keep v1 running in parallel

Web-interfaces are at:

https://finder.globalnames.org

https://verifier.globalnames.org

https://parser.globalnames.org

Github:

https://github.com/gnames/gnfinder

https://github.com/gnames/gnverifier

https://github.com/gnames/gnparser