Line 50: |
Line 50: |
| | | |
| = API = | | = API = |
| + | |
| + | == List and descriptions of available product attributes == |
| + | |
| + | App can get the list of all available product attributes at the /api/v2/attribute_groups or /api/v2/attribute_groups_[language code] endpoints. |
| + | |
| + | e.g. [https://world.openfoodfacts.org/api/v0/attribute_groups] |
| + | |
| + | It returns a JSON array of attribute groups that each contain an array of attributes. |
| + | |
| + | Attribute groups keys: |
| + | * id - e.g. nutritional_quality |
| + | * name - e.g. Nutritional quality |
| + | * warning (optional) |
| + | * attributes: array of attributes |
| + | |
| + | Attributes keys: |
| + | * id - e.g. "nutriscore", |
| + | * name - e.g. Nutri-Score" |
| + | * setting_name - e.g. "Good nutritional quality (Nutri-Score)" (in the form of a requirement) |
| + | * setting_note (optional) - e.g. extra detail that can be shown in user preferences |
| | | |
| == Request == | | == Request == |
| | | |
− | Apps can request Product Attributes through API queries (/product or /search) by including "attribute_groups" or "attribute_groups_[language code]" (or "attribute_groups_data" to get only the machine readable data) in the "fields" parameter. | + | Apps can request Product Attributes through API queries (/api/v2/product or /api/v2/search) by including "attribute_groups" or "attribute_groups_[language code]" (or "attribute_groups_data" to get only the machine readable data) in the "fields" parameter. |
| | | |
| == Response == | | == Response == |
Line 71: |
Line 91: |
| * status - known, unknown, not-applicable : indicate if we have enough data to decide if the requirement is met | | * status - known, unknown, not-applicable : indicate if we have enough data to decide if the requirement is met |
| * match - 0 to 100 - indicate how well the product matches the requirement (100 = 100% match) | | * match - 0 to 100 - indicate how well the product matches the requirement (100 = 100% match) |
− | * icon_url | + | * icon_url (optional) |
| * title - short title corresponding to the value of the attribute - e.g. "Nutri-Score D" | | * title - short title corresponding to the value of the attribute - e.g. "Nutri-Score D" |
− | * details - explains how the match was computed, what triggered the match value (e.g. for vegan, list of ingredients that may not be vegan) | + | * details (optional) - explains how the match was computed, what triggered the match value (e.g. for vegan, list of ingredients that may not be vegan) |
− | * description_short - very short description - e.g. "Bad nutritional quality" | + | * description_short (optional) - very short description - e.g. "Bad nutritional quality" |
− | * description_long - small text (1 or 2 paragraphs, possibly with bullet points introduced by dashes) | + | * description (optional) - small text (1 or 2 paragraphs, possibly with bullet points introduced by dashes) - intended to be displayed under the description_short |
− | * recommendation_short - "Reduce" | + | * recommendation_short (optional) - "Reduce" |
− | * recommendation_long | + | * recommendation_long (optional) |
− | * official_link_title - "Nutri-Score page on Santé publique France" | + | * official_link_title (optional) - "Nutri-Score page on Santé publique France" |
− | * official_link_url | + | * official_link_url (optional) |
− | * off_link_title | + | * off_link_title (optional) |
− | * off_link_url | + | * off_link_url (optional) |
| | | |
| === Example === | | === Example === |