I'm in need of a certain web API, but the ones have found have rate limits tha开发者_JAVA技巧t won't be enough for me.
I can set up my own database and store the results that I get from the API, to reduce the amount of calls. This will eventually lead to a point where I, more or less, have copied the API database.
Is this okay? It might be morally questionable, but is there anything that actually prevents me from doing it?
Thank you.
It depends on the terms of service of the API vendor.
ex: google maps
10.1 Restrictions on How You May Use the Maps API(s). Except as explicitly permitted in Section 8 (Licenses from Google to You) or the Maps APIs Documentation, you must not (nor may you permit anyone else to) do any of the following:
10.1.3 Restrictions against Data Export or Copying.
(b) No Pre-Fetching, Caching, or Storage of Content. You must not pre-fetch, cache, or store any Content, except that you may store: (i) limited amounts of Content for the purpose of improving the performance of your Maps API Implementation if you do so temporarily, securely, and in a manner that does not permit use of the Content outside of the Service; and (ii) any content identifier or key that the Maps APIs Documentation specifically permits you to store. For example, you must not use the Content to create an independent database of “places.”
Ultimately it will depend on the terms and conditions set out by the API provider. You may find though that you can run in to issues where your copy is not as up-to-date as the live version - and you will need to find a way to refresh your local copy without going over the call limits. It also won't necessarily solve any issues you have with call throttling with write operations which must update the master database(s).
精彩评论