Вводный курс
10 модулей
5 недели

Ответ сервера и типы данных

Скопировать

Состав ответа. Коды состояний. Базовые типы данных


Ответ (Response), который приходит от сервера, работает практически по той же схеме, как и запрос. В нем, по понятным причинам, нет параметров запроса, но заголовки (Headers) и тело (Body) включаются в ответ (хоть и могут быть пустыми).

Важным отличием является наличие статуса ответа.

Коды состояний

Status code. Также называют кодом состояния. Он приходит в первой строке ответа сервера. Статус представляет собой число из трех цифр (сам код), за которым также идет поясняющая его фраза.

Именно по коду состояния можно узнать о результатах запроса и понять, какие действия стоит делать дальше.

Все возможные коды состояния делятся на 5 классов. Первая цифра кода и определяет принадлежность к конкретному классу. Давайте разберем их.

1xx - информационные коды. Сообщают о прогрессе выполнения запроса. В реальной практике используются довольно редко.

2xx - успешные коды. Сообщают о том, что все в порядке и запрос был выполнен успешно. В ответ на GET-запрос мы обычно рассчитываем получить код 200 (OK). В ответ на успешный PUT-запрос отправляется код 201 (Created).

3xx -  перенаправления. Указывают на то, что запрос нужно отправлять по другому адресу. Пример - код 301 (Moved Permanently), сообщающий о том, что требуемые данные теперь находятся по новому адресу (сам новый адрес передается в заголовке Location).

4xx - коды ошибок клиента. Самый известный из них - 404 (Not Found), сообщает о том, что по указанному адресу нужных данных нет. Другие частые случаи: 400 (Bad Request, синтаксическая ошибка в запросе), 401 (Unauthorized, для доступа необходима аутентификация), 403 (Forbidden, доступ запрещен).

5xx - коды ошибок сервера. Сообщают об ошибке на стороне сервера. Как пример: 500 (Internal Server Error, любая непонятная ошибка, которую нельзя отнести к известному коду), 503 (Service Unavailable, сервер временно не может обработать запрос по техническим причинам) 

Типы данных

На этом можно считать, что мы разобрались с основной информацией для понимания REST API и структурой запросов и ответов HTTP. Осталось прояснить только один момент - типы данных. Если вы уже попробовали создать свой API запрос в AppMaster, то наверняка заметили, что все данные (в параметрах, в заголовках, в теле) просят указать не только название, но и тип данных.

Data types

Для человека обычно довольно очевидно, как работать с данными, так как есть определенный контекст. Допустим, мы знаем, что 2 + 2 = 4. Мы догадываемся, что это числа и результатом сложения станет другое число.

Но ведь это могут быть и не числа, а текстовые данные. Тогда результатом их сложения могло стать объединение строк и 2 + 2 превратилось бы в “22”. Вот для того, чтобы компьютеру не пришлось ничего додумывать, существует точное указание типа данных. А заодно решаются и другие задачи. Например, обеспечивается защита от ввода неверных данных, изначально закрывается возможность прописать адрес электронной почты в поле предназначенное для ввода цифр номера телефона.

Различных типов данных довольно много, сейчас мы рассмотрим самые базовые, а в дальнейших модулях курса познакомимся с остальными.

String - Строчный тип данных, простой текст без специального форматирования.

Integer - Целочисленный тип данных. Может использоваться для счетчиков или вычислений там, где не нужны дробные числа

Float - Число с плавающей запятой. Используется там, где нужна повышенная точность и целочисленных значений недостаточно.

Тут может возникнуть логичный вопрос. А почему бы всегда не использовать именно Float, зачем тогда нужен Integer? Но большая точность требует больших ресурсов. Для каких-то небольших вычислений это может быть совершенно незаметно, но в случае больших объемов данных использование разумного типа данных может значительно уменьшить требования к вычислительной мощности и объему дискового пространства.

Boolean - логический тип данных. Самый простой тип данных. Принимает одно из двух значений, которые записываются, как True (истина) или False (ложь). Часто можно увидеть обозначение в виде 1 (true) и 0 (false).

Was this article helpful?
Все еще ищете ответ?
Cообщество