Ответ
В REST API наиболее распространены форматы JSON и, реже, XML. Выбор формата определяется API-контрактом.
1. JSON (application/json) — современный стандарт де-факто.
- Преимущества: Легко читается, компактный, отлично поддерживается всеми языками программирования.
- Пример тела запроса для создания пользователя:
{ "user": { "name": "John Doe", "email": "john@example.com", "isActive": true } }
2. XML (application/xml) — используется в legacy-системах или специфичных доменах.
- Пример:
<user> <name>John Doe</name> <email>john@example.com</email> <isActive>true</isActive> </user>
3. Другие форматы:
x-www-form-urlencoded— для отправки простых пар «ключ=значение», как в HTML-формах.name=John+Doe&email=john%40example.com
multipart/form-data— обязателен для загрузки файлов вместе с другими данными.- Текстовые (
text/plain) или бинарные данные — для специализированных случаев.
При тестировании важно:
- Проверять, что API корректно принимает и парсит заявленный в документации формат.
- Валидировать ответ сервера на неверный или поврежденный
Content-Type.
Ответ 18+ 🔞
Да ты посмотри, какая хуйня творится в этих ваших REST API! Сидят, блядь, архитекторы, чешут репу и думают: "А в каком, сука, формате нам данные гонять?" И вариантов-то, внатуре, до охуища.
Вот, например, JSON (application/json) — это сейчас царь и бог, стандарт де-факто, ебать его в сраку. Все его любят, потому что он лёгкий, читаемый и любой язык его жрёт, как горячие пирожки. Вот смотри, как просто, блядь, пользователя создать:
{
"user": {
"name": "John Doe",
"email": "john@example.com",
"isActive": true
}
}
Красота, ёпта! Ничего лишнего, всё по полочкам. А теперь смотри на его дедушку — XML (application/xml). Этот, блядь, ещё из тех времён, когда интернет на модеме пищал. Сейчас его только в легаси-системах встретишь, или где совсем ебнутые спецификации.
<user>
<name>John Doe</name>
<email>john@example.com</email>
<isActive>true</isActive>
</user>
Видишь, сука, сколько лишних тегов нагородил? Целых три строчки на то, что JSON в одну упаковал. Пиздец просто, воды дохуя.
А ещё есть, блядь, форматы для совсем простых задач. Вот x-www-form-urlencoded — это когда тебе надо отправить данные, как из старой-доброй HTML-формы. Типа name=John+Doe&email=john%40example.com. Никаких тебе вложенностей, всё плоско, как доска.
Но самый, блядь, интересный зверь — это multipart/form-data. Его, сука, используют, когда вместе с текстом нужно файл прицепить. Картинку какую-нибудь или документ. Без него — никуда, иначе сервер тебя пошлёт нахуй с твоим бинарным мусором.
Ну и, конечно, бывают совсем специализированные случаи, когда гоняют просто текст (text/plain) или сырые бинарные данные. Но это уже для извращенцев, в рот меня чих-пых.
А теперь, сука, самое главное, когда тестируешь эту всю хуйню:
Первое — надо проверить, что API не обосрётся, когда ты шлёшь ему данные в том формате, который в документации написан. А второе, и это овердохуища важно — обязательно завали его каким-нибудь левым или сломанным Content-Type. Посмотри, как он отреагирует: красиво ругнётся с ошибкой 415 или, как мудак, начнёт пытаться парсить твоё говно и упадёт с пятисотым статусом, обосрав все логи. Вот это и есть качественное тестирование, блядь!