Я занимаюсь разработкой API. Я использую MVC-архитектуру, свою собственную мини-структуру, написанную на PHP.
Это API RESTful, но также обеспечивает одновременный канал реального времени через веб-сокеты с использованием NodeJS. Таким образом, технически некоторые из услуг доступны через стандартный интерфейс REST, а остальная часть непрерывного полного потока потока доступна через веб-сокеты.
Из-за этого очень важно, чтобы я использовал коды ошибок HTTP для большого количества мелкозернистых сценариев.
Теперь, мой вопрос довольно прост, каков должен быть код состояния HTTP, указывающий на ошибку сервера, которая не является фатальной?
501
- для внутренней ошибки сервера, но здесь я ищу сценарий, когда некоторая часть запроса не может быть выполнена.
Ценю вашу помощь.
Немного больше разъяснений относительно фактического сценария
Запрос успешно обрабатывается сервером, но этот сценарий возникает, когда после завершения запроса сервер не может обновить журнал. Таким образом, это частичное исполнение.
На самом деле, думая об этом, кажется, что вы определяете две ситуации одним махом -
Запрос успешно обрабатывается сервером, но этот сценарий возникает, когда после завершения запроса сервер не может обновить журнал. Таким образом, это частичное исполнение.
На самом деле это выглядит как две отдельные вещи:
Запрос успешно обрабатывается, часть 1, так что заголовок 200 (скажем), но тогда, если обновление журнала не завершено, то (и только это) является ошибкой 5xx. Если вы можете установить, почему журнал не написан, а затем возвратите конкретную ошибку 5xx по этой конкретной причине.
Если вы хотите вернуть только один заголовок, даже если запрос успешно обработан, если журнал не обновляется правильно, запрос фактически не обрабатывается успешно и заголовок 5xx должен быть возвращен, поскольку заголовок 5xx будет иметь прецедент над 2xx заголовок. Если вы используете заголовок для своего собственного перенаправления, вы можете использовать заголовок клиента, потому что знаете, как вы справитесь с этим.