Releases: LartTyler/MHWDB-API
1.18.5
1.18.4
1.18.3
1.18.2
1.18.1
Changelog
- Fixed a bug wherein saving newly added
CharmRankobjects would return a 500 error (fixes LartTyler/MHWDB-Contrib#49).
1.18.0
Changelog
- Added support for localizing strings on most objects. Supported languages and their language code can be found in the table below.
- Removed deprecated
lengthfields from all entities. - Added support for purple sharpness.
Breaking Changes
- All
lengthfields have been removed from collections in the API. Use the$sizeoperator to query for collection length instead.
Deprecations
- On Charm Ranks, the
namefield is now deprecated, as it was an auto-generated value that could not properly be translated.
Supported Languages
| Language | Script | Tag |
|---|---|---|
| English | — | — |
| French | — | fr |
| German | — | de |
| Chinese | Simplified | zh |
| Traditional | zh-Hant |
The table above lists all languages that will be supported with this release. If you'd like to request an additional langauge, please open a new issue on this repository. Please be aware that this does not indicate languages that will have all their data localized following this release, as localization requires manual data entry via the contribution site. If you'd like to help with localization, please email me at tyler@lartonoix.com, or via our Discord server.
1.17.3
1.17.2
1.17.1
Changelog
- Fixed a bug wherein requests to
https://mhw-db.comwere not being redirected to the documentation site. - Fixed a bug wherein attributes objects (such as
Weapon.attributesorSkillRank.modifiers) would be serialized to an empty array if they contained no keys.
1.17.0
Changelog
- Added "fanged beast" as a monster species.
- Scraping of Iceborne events is now supported by the API.
- Safi'jiiva siege events are now supported by the API.
- Updated
symfony/*packages to v5.0. - Replaced
dbstudios/doze-bundlewithdbstudios/php-api-common.
Breaking Changes
- Removed the following fields from weapons (as they're now supported by top-level weapon fields):
attributes.eldersealattributes.phialTypeattributes.ammoCapacitiesattributes.coatingsattributes.specialAmmoattributes.deviationattributes.boostTypeattributes.damageTypeattributes.shellingType
Deprecations
- The
lengthfield on all relationships are being deprecated in favor of the new$sizeoperator, and will be removed inv1.18.0. For more information, please read the section titled New$sizeOperator.
New $size Operator
Early on the API's lifetime, the decision was made to support queries against the length of a collection or relationship via a special .length field. To do this, an extra column was added for every relationship that stored a cached count of the number of elements in the relationship. When a query hit the API that used the length field, it would be translated to the correct column name (e.g. crafting.materials.length would actually query crafting.materialsLength). This worked well when the API was read-only, and lengths could be calculated on a development server, then pushed to production. Now that the API relies on user contributed information, however, those cached lengths have to be recalculated every time an entity with relationships is updated, even if the number of items in the relationship hasn't changed.
With the most recent update to the dbstudios/doctrine-query-document library, it became possible to leverage Doctrine's built-in SIZE function for relationships, like so.
/skills?q={"ranks": {"$size": 1}}
In the example above, the API would return any skill with exactly one rank. The $size operator also supports embedding other operators, to give you more flexibility in your queries.
/skills?q={"ranks": {"$size": {"$lte": 1}}}
/skills?q={"ranks": {"$size": {"$in": [1, 2, 3]}}
The examples above would return skills with zero or one rank, and skills with one, two, or three ranks, respectively. For more information on the $size query, refer to the library docs.