Мы запускаем новый REST API, и я хотел, чтобы некоторые сообщества вносили вклад в лучшие практики в отношении того, как мы должны были форматировать входные параметры:
Прямо сейчас, наш API очень JSON-ориентирован (только возвращает JSON). Дискуссия о том, хотим ли мы/хотим вернуть XML, является отдельной проблемой.
Поскольку наш вывод API является JSON-ориентированным, мы проходим путь, где наши входы немного ориентированы на JSON, и я думал, что это может быть удобно для некоторых, но странных вообще.
Например, чтобы получить несколько сведений о продукте, в которые можно сразу вытащить несколько продуктов, мы в настоящее время имеем:
http://our.api.com/Product?id=["101404","7267261"]
Если мы упростим это как:
http://our.api.com/Product?id=101404,7267261
Или имеет удобство ввода JSON? Больше боли?
Мы можем принять оба стиля, но эта гибкость на самом деле вызывает больше путаницы и головных болей (ремонтопригодность, документация и т.д.)?
Более сложным является случай, когда мы хотим предложить более сложные ресурсы. Например, если мы хотим разрешить несколько фильтров при поиске:
http://our.api.com/Search?term=pumas&filters={"productType":["Clothing","Bags"],"color":["Black","Red"]}
Мы не обязательно хотим помещать типы фильтров (например, productType и color) в имена запросов как это:
http://our.api.com/Search?term=pumas&productType=["Clothing","Bags"]&color=["Black","Red"]
Поскольку мы хотели сгруппировать все входные данные фильтра вместе.
В конце концов, действительно ли это имеет значение? Вполне вероятно, что существует так много утилит JSON, что тип ввода просто не имеет значения.
Я знаю наших клиентов JavaScript, делающих обращения AJAX к API, может оценить входы JSON, чтобы облегчить их жизнь.