У меня есть программное обеспечение, которое я не могу заменить по разным причинам, и API имеет вид RESTFul.
Все EndPoints могут отвечать одним или несколькими (в массиве) объектами, даже если архитектура RESTFul говорит, что она должна отвечать массивом объектов, если она только находит один, она возвращает объект, не заключая в массив .
GET /customers?country_id=10000
{
"count": 5,
"customers": [
{ "id": 10000, "name": "Customer 10000", "vatnum": "123456789P", "country_id": 10000 },
{ "id": 10001, "name": "Customer 10001", "vatnum": "234567891P", "country_id": 10000 },
{ "id": 10002, "name": "Customer 10002", "vatnum": "345678912P", "country_id": 10000 },
{ "id": 10003, "name": "Customer 10003", "vatnum": "456789123P", "country_id": 10000 },
{ "id": 10004, "name": "Customer 10004", "vatnum": "567891234P", "country_id": 10000 }
]
}
GET /customers?vatnum=123456789P
{
"count": 1,
"customers": {
"id": 10000,
"name": "Customer 10000",
"vatnum": "123456789P",
"country_id": 10000
}
}
Моя проблема заключается в том, что я делаю клиент этого API, и я не знаю, какая стратегия лучше всего подходит для решения этой проблемы с точки зрения отображения / анализа ответа сервера в структурах Golang.