marshmallow-code / marshmallow-jsonapi

JSON API 1.0 (https://jsonapi.org/) formatting with marshmallow
https://marshmallow-jsonapi.readthedocs.io
MIT License
217 stars 67 forks source link

Fix attribute name inflection #429

Open JBamberger opened 1 year ago

JBamberger commented 1 year ago

The attribute name inflection function is applied multiple times to some attributes. For simple inflection functions this works, because they reach a fixpoint after the first application, e.g. the dasherize function does nothing if the attribute is already dasherized.

For other functions, like adding a postfix, this does not work, i.e. for lambda s: s + '_x' would result in an attribute name username_x_x for an attribute called username. Expected would be username_x.

Furthermore, the inflection is applied to the id field, even though, the id field name is dictated by the jsonapi standard. Thus, the predefined fields should not be affected by inflection.

A quick test with the meta showed, that this problem does not occur here, but other such predefined fields might still be affected by the inflection.