Light mode

Pokeapi

Voor het maken van mijn Discord bot Diamond is data gebruikt van https://pokeapi.co/. Om ergonomisch met deze data in Rust te kunnen werken heb ik een wrapper library geschreven pokeapi-rs. Deze library cached en parsed alle gemaakte requests zodat deze direct beschikbaar zijn bij het vaker aanvragen van dezelfde resource. De cachen is gedaan zowel om niet te wachten bij herhaling requests en om de pokeapi server minder te belasten. Het tweede voordeel van het gebruikt van de library is het ergonomisch kunnen volgen van referentie links via function calls.

Alle data wordt deserialized naar structs met behulp van serde. Alle netwerk requests worden gedaan met de library reqwest. Het gebruik van reqwest limiteert de library tot gebruik met de tokio async runtime en dus niet met async-std. Voor het controleren van de data structs zijn er integratie testen. Deze testen laden de alle data van de api en zullen errors tonen wanneer de api niet overeenkomt met de struct. Deze integratietesten worden gedraaid bij elke commit in de CI pipeline.