Endpoint that returns all metadata

It’d be nice to also have 1 endpoint that returns all metadata. For example, I’d like to cache the metadata and only refresh it every 24/12 hours. The only way to do this currently is make 19 web requests and then construct them into my own json object and save it to my documentdb database. Sure I can do this in async and run them in parallel, but it’s still a lot of extra, un-needed headway and http bloat.

The Halo 4 API did metadata like so:
https://api.halo4.com/metadata - returned all metadata
https://api.halo4.com/metadta?types=enemies,maps - returned all metadata for enemies and maps

Would like this as well, was handled much better for Halo 4 IMHO.

Hey guys, I just made a function for my Python wrapper that will create a local JSON library for all the current metadata, save the REQ metadata since there is currently no endpoint to get the IDs from. If you’re interested you can find that in my repository: GitHub - David4Danger/16807-Pious-Academic: Python wrapper for the 343i Halo 5 API

Let me know if you have any problems. If anything just download the current JSON files I have uploaded to the repository, then uses the getmeta file in the future when any of the endpoints get updated data (like new maps).

That should be very useful, but I use PHP and I like to do things myself :slight_smile:

You can’t even do it in async now without hitting the rate limit… 10 per 10 seconds default is pretty garbage.
Caching is definitely the way to go.

No need to store them in Azure’s DocumentDB or MongoDB though.
Use Redis, or even the build in memory cache in .Net: MemoryCache Class (System.Runtime.Caching) | Microsoft Docs

> 2533274820305864;5:
> You can’t even do it in async now without hitting the rate limit… 10 per 10 seconds default is pretty garbage.
> Caching is definitely the way to go.
>
> No need to store them in Azure’s DocumentDB or MongoDB though.
> Use Redis, or even the build in memory cache in .Net: MemoryCache Class (System.Runtime.Caching) | Microsoft Docs

Not sure if he suggested a Db provider in the instance of an application, that might have logical links across the data that needs to be persisted.

To be fair, they just brought out the API, so 10 per 10 whilst people set up isn’t too bad. I added a Rate limit system, and a nice caching manager to my solution for now anyway, however I still think it would be nice to get at least some grouped metadatas via one endpoint. Not necessarily all in one.

I just set up daily caching for the metadata I need, which is just 3 calls so it’s not too bad but still a lot for any applications that don’t have the option of caching.
Still have 3 calls per user action though, and I expect a lot of users initially so this 10 per 10 seconds limit is holding me back and I’m pretty much ready to release.

> 2533274825188615;7:
> I just set up daily caching for the metadata I need, which is just 3 calls so it’s not too bad but still a lot for any applications that don’t have the option of caching.
> Still have 3 calls per user action though, and I expect a lot of users initially so this 10 per 10 seconds limit is holding me back and I’m pretty much ready to release.

Submit your application. You’ll get a new key with a higher limit. You submit applications through your profile.

The 10/10 rate limit is for developing your application, not for production.

> 2753093343646559;8:
> > 2533274825188615;7:
> > I just set up daily caching for the metadata I need, which is just 3 calls so it’s not too bad but still a lot for any applications that don’t have the option of caching.
> > Still have 3 calls per user action though, and I expect a lot of users initially so this 10 per 10 seconds limit is holding me back and I’m pretty much ready to release.
>
>
> Submit your application. You’ll get a new key with a higher limit. You submit applications through your profile.
>
> The 10/10 rate limit is for developing your application, not for production.

Oh, I just requested a higher rate limit via email like the sticky says and just got a higher limit a few hours ago. :slight_smile:

I said the 10/10 limit was holding me back from releasing it, which was because I was waiting for the higher rate limit. Otherwise I’d have said that it prevented me from releasing or whatever.

Not opposed to this idea. A nice little alternative when one doesn’t want like 10 connections running around.

> 2533274825188615;9:
> > 2753093343646559;8:
> > > 2533274825188615;7:
> > > I just set up daily caching for the metadata I need, which is just 3 calls so it’s not too bad but still a lot for any applications that don’t have the option of caching.
> > > Still have 3 calls per user action though, and I expect a lot of users initially so this 10 per 10 seconds limit is holding me back and I’m pretty much ready to release.
> >
> >
> > Submit your application. You’ll get a new key with a higher limit. You submit applications through your profile.
> >
> > The 10/10 rate limit is for developing your application, not for production.
>
>
> Oh, I just requested a higher rate limit via email like the sticky says and just got a higher limit a few hours ago. :slight_smile:
>
> I said the 10/10 limit was holding me back from releasing it, which was because I was waiting for the higher rate limit. Otherwise I’d have said that it prevented me from releasing or whatever.

I must have done something wrong since i requested an increase a few days ago after submitting my application and I have yet to see anything come back on it. To fix the call problem, the caching method is a good idea. I went with setting up a database to store and grab that info instead so I no longer have to make the metadata calls.