Как управлять пользовательским кодом ответа в веб-приложении - PullRequest
1 голос
/ 04 августа 2020

Этот вопрос больше касается архитектуры, а не кода. Мне было любопытно, как управляются коды ответов в корпоративных и других крупных проектах.

Techstack :

  • Python 3
  • Django

В любом веб-приложении на основе REST нам нужны какие-то специальные коды ответов. Эти коды отличаются от наших кодов ответов HTTP.

USE-CASE : Предположим, у нас есть API для создания записи о продукте в базе данных. Теперь, в зависимости от какой-то бизнес-логики c, я хочу вернуть собственный код ответа, например 2001, 2002 (или что-то еще). Код ответа HTTP всегда будет 200, но мой собственный код ответа может быть другим. Эти пользовательские коды могут потребоваться для клиентского приложения, чтобы определить, что делать дальше.

Обычно я видел, как люди создавали Список словарей что-то еще, например:

codes = {"PRODUCT_CREATE_SUCCESS": 2002, "PRODUCT_CREATE_FAIL": 2005, ......}

и то же идет с ответными сообщениями

messages = {"PRODUCT_CREATE_SUCCESS": "Product created successfully", "PRODUCT_CREATE_FAIL": "Product already exist"}

Поэтому всякий раз, когда они хотят вернуть эти коды и сообщения, они просто делают

{"code": codes['PRODUCT_CREATE_SUCCESS'], "message": messages['PRODUCT_CREATE_SUCCESS']}

Я знаю, что вышеуказанный подход достаточен для небольших приложений, но это может быть проблематично c для больших. Ответ может быть субъективным. Хотя я не хочу вводить go в кодировку, но мы можем, если потребуется.

...