Мое приложение предоставляет REST-сервер для управления им.Я использую GET-запросы для получения различной информации о состоянии:
- / current_status - возвращает объект JSON и 200 OK
- / Programs - возвращает массив JSON и 200 OK
- /конфигурация - возвращает объект JSON и 200 OK
- ...
Но я не уверен, какой запрос (GET, POST и т. д.) я должен передать, если я хочу выполнить что-тона сервере?Что такое RESTful способ делать вещи?Некоторые функции могут не работать, поэтому мне нужно уведомить об этом клиента, что означает, что мне нужно отправить правильный код состояния.
Например:
- выполнить задачу (номер задачи, дополнительные параметры):
bool execute(int task, const std::string& data)
или bool execute(int task, std::vector<std::uint8_t>& data)
- shutdown (timeout):
bool shutdown(int timeout)
- restart:
bool restart()
Должен ли GET с параметрами или POST с объектом JSON, описывающим задачу?
Как обрабатывать обновления прогресса?Клиентское приложение может попросить выполнить задачу, выполнение которой занимает некоторое время, и мне нужно показать, как она работает на этом клиенте.Нужно ли постоянно спрашивать сервер?Существуют ли разные подходы?
PS Я привык работать с сокетами BSD, что означает наличие открытого соединения, но подход REST не требует соединения, что полностью нарушает мое понимание.