Назад к вопросам
Senior
4
Как мы будем возвращать весь заказ и его частично (API дизайн)?
Компании, где спрашивали
Магнит Тех
Ответ от нейросети
sobes.tech AI
Для возврата полного заказа и его частичных данных через API можно использовать REST-подход с разными эндпоинтами или параметрами запроса.
Например:
- GET /orders/{id} — возвращает полный заказ с деталями.
- GET /orders/{id}?fields=items,total — возвращает только указанные поля (частично).
Или использовать GraphQL, где клиент сам указывает, какие поля ему нужны.
В Go это можно реализовать так:
func GetOrder(w http.ResponseWriter, r *http.Request) {
id := mux.Vars(r)["id"]
fields := r.URL.Query().Get("fields")
order := fetchOrderFromDB(id)
if fields != "" {
// Парсим fields и формируем ответ с нужными полями
partialResponse := filterOrderFields(order, fields)
json.NewEncoder(w).Encode(partialResponse)
return
}
json.NewEncoder(w).Encode(order)
}
Такой подход позволяет гибко отдавать данные по запросу клиента.