This API doesn't appear to be versioned... IE there is no version number in the URL. It looks like the plan is to replace this API with the next new API version. This will break all existing applications. This will scare developers away, its best to leave at least a few prior API versions running for compatibility then age them out slowly. I have rewriten my code for thegamesdb api 3 times now when the API has evoloved, lucky for me I have written a wrapper so i just need to edit the wrapper but still... painful.
I am able to get every platforms info along with all of the platform images in only 14 API calls. That being said I had trouble figuring out the URL for playform icons. The other APIs for images contain a list of BaseURLs however the platform list API does not. I was able to find the url for the one size by looking directly at the main site and looking at the folder it was using but i feel there should be more sizes... maybe there are.
When using /Games/ByGameID i can only include boxart and platform, but platform doesn't include as much information as calling the platform API call does. Ideally i would also like to be able to include genres, developers, and publishers so i dont have to call the API again to get that information.
originally i though 6000 requests would not be enough for a month but it is more then enough to scrape the entire DB if you do it efficiently using the API calls. Then cache that data on your own server for future calls.
The update API is the one i had the most trouble with.
- Games can have update API but platforms/Genres/developers, etc cant? What if a new platform is added, where are the updates for that? I think the update api would be better off as a generic API with another variable that indicates if its a publisher, genre, playform, game, etc.
- When items are in the list its not clear if they are being added, removed or edited. I think another field in the API for the type of update would be ideal
- The best way i can find to update is to get the update list, create a list of GameIDs, deduplicate the list then pull all of those entries completely, then delete my cached data and resync it.
- the Update API needs the time in seconds but the time/date format for the rest of the API's is YYYY-MM-DD, i found this inconstancy a little odd.