Migrationsleitfaden (v1 -> v2)
Kurzüberblick
Abschnitt betitelt „Kurzüberblick“Mit v2 erhalten Sie im Vergleich zu v1 vor allem drei fachliche Erweiterungen:
- Serving Sizes werden in Food- und Search-Antworten direkt ausgegeben.
- Labels werden an mehreren Stellen mitgeliefert (insbesondere bei Nährwerten und Search-Varianten).
- FoodDTO enthält zusätzliche Nährwerte (neue Felder, siehe unten).
Wichtig für bestehende Integrationen:
/api/*ohne Versionspfad zeigt weiterhin auf v1 (Legacy-Verhalten).- v2 ist nur unter
/api/v2/*erreichbar.
1) Route: GET /api/v2/food/{id}
Abschnitt betitelt „1) Route: GET /api/v2/food/{id}“Objekt: food_service.FoodDTO
Neu in v2 gegenüber v1:
serving_sizesist enthalten (v1 gibt dieses Feld nicht zurück).serving_sizes[].typenutzt diese Werte:packageportionpinchtablespoonteaspoonsmall_wholemedium_wholelarge_wholesmall_piecemedium_piecelarge_piecesmall_slicemedium_slicelarge_slicesmall_bottlemedium_bottlelarge_bottlesmall_glassmedium_glasslarge_glasssmall_cupmedium_cuplarge_cupsmall_bowlmedium_bowllarge_bowlsmall_toemedium_toelarge_toe
- Legacy-Felder aus v1 sind nicht mehr Teil des v2-Vertrags:
quantity_valuequantity_unit
- Nährwerte sind als
Quantitymit Label aufgebaut:- Struktur:
{ "label": string, "amount": number, "unit": string }
- Struktur:
Neue Nährwert-Felder in v2 (gegenüber v1):
vaccenic_acidgondoic_acidrumenic_acidgamma_linolenic_aciddihomo_gamma_linolenic_acidnitrogenchromiummolybdenumretinol_activity_equivalentfolatefolate_naturalergocalciferolcholecalciferolbeta_tocopheroldelta_tocopherolgamma_tocopherolalpha_tocotrienolvitamin_Kmenaquinoneacetic_acidcitric_acidlactic_acidmalic_acidtartaric_acidoligosaccharidesfiber_high_molecular_weightfiber_insoluble_high_molecular_weightfiber_soluble_high_molecular_weightfiber_low_molecular_weightfatty_acids_othercarotenoids_ex_beta_carotene
2) Route: GET /api/v2/search
Abschnitt betitelt „2) Route: GET /api/v2/search“Objekt: ApiFoodSearchResponse mit data[] als SearchFoodData
Neu in v2 gegenüber v1:
- Pro Treffer ist
serving_sizesenthalten. serving_sizes[].typeverwendet denselben Serving-Key-Satz wie oben.quantity_value/quantity_unit(v1-Legacy) sind nicht Teil von v2.processed_variants[]enthält ein zusätzliches Feld:label(menschenlesbare Bezeichnung der Verarbeitung)
- In
processed_variants[].big7enthalten die Mengen Labels:- z. B.
energy.label,protein.label, etc.
- z. B.
3) Route: GET /api/v2/search/gtin
Abschnitt betitelt „3) Route: GET /api/v2/search/gtin“Objekt: ApiGtinSearchResponse mit data als SearchFoodData
Neu in v2 gegenüber v1:
- Entspricht denselben Struktur-Updates wie bei
GET /api/v2/search:serving_sizesenthaltenserving_sizes[].typeverwendet denselben Serving-Key-Satz wie obenprocessed_variants[].labelenthalten- Labels in
processed_variants[].big7.*.label - kein
quantity_value/quantity_unit
4) Route: POST /api/v2/evaluate/nutrition-summary
Abschnitt betitelt „4) Route: POST /api/v2/evaluate/nutrition-summary“Objekt: Nutrition Summary
Neu in v2 gegenüber v1:
- Alle Quantity-Felder enthalten Labels (
label,amount,unit).
5) Route: POST /api/v2/evaluate/macro-distribution
Abschnitt betitelt „5) Route: POST /api/v2/evaluate/macro-distribution“Objekt: Macro Distribution
Neu in v2 gegenüber v1:
breakdown[]enthält jetzt ein zusätzliches Feldlabelje Makro-Komponente.
6) Route: POST /api/v2/evaluate/healthy-eating-index
Abschnitt betitelt „6) Route: POST /api/v2/evaluate/healthy-eating-index“Objekt: HEI Report
Neu in v2 gegenüber v1:
components[]enthält jetzt ein zusätzliches Feldlabel.componentist in v2 auf einen festen Satz von Werten ausgelegt (Enum-Verhalten).
Aktuelle component-Werte:
total_fruitswhole_fruitstotal_vegetablesgreens_and_beanswhole_grainsdairytotal_protein_foodsseafood_and_plant_proteinsrefined_grainsadded_sugarssaturated_fatsfatty_acidssodium
7) Route: POST /api/v2/evaluate/energy-density
Abschnitt betitelt „7) Route: POST /api/v2/evaluate/energy-density“Objekt: Energy Density Report
Neu in v2 gegenüber v1:
sum_energy_liquidsenthält ein zusätzliches Feldlabel.energy_density[]enthält ein zusätzliches Feldlabelpro Eintrag.
Technische Hinweise für Integrationen
Abschnitt betitelt „Technische Hinweise für Integrationen“- Wenn Sie aktuell
quantity_value/quantity_unitaus v1 verwenden, migrieren Sie für v2 auf:serving_sizes[]für Portions-/Packungsgrößen,Quantity-Objekte (label,amount,unit) für Nährwerte.
- Rechnen Sie in v2 mit zusätzlichen Feldern (insbesondere bei Nährwerten).
- Falls Ihre Deserialisierung strikt ist: DTOs bitte auf additive Felder vorbereiten.