Q: What is API and what it helps you with?
A: API (Application Programming Interface) — язык, на котором приложения общаются между собой. С помощью API одно приложение может использовать возможности другого приложения. Например, интернет-магазин может вызывать банковские сервисы для оплаты покупок.
Q: Что такое REST API?
A: Это архитектурный стиль дизайна API в современных сервисах и приложениях, описывающий стандарты проектирования интерфейса своего приложения с другим. Если интерфейс взаимодействия приложения соответствует принципам REST API, то оно называется RESTful.
Q: Еще одно определение REST API
A: набор ограничений и стандартов для создания web-сервисов. То как приложения должны обмениваться между собой в интернете
Q: В чем главная особенность REST API?
A: Главная особенность REST API — обмен сообщениями без сохранения состояния. Каждое сообщение самодостаточное и содержит всю информацию, необходимую для его обработки. Сервер не хранит результаты предыдущих сессий с клиентскими приложениями. Это обеспечивает гибкость и масштабируемость серверной части, позволяет поддерживать асинхронные взаимодействия и реализовывать алгоритмы обработки любой сложности. Кроме того, такой формат взаимодействия является универсальным — он не зависит от технологий, используемых на клиенте и на сервере, и не привязывает разработчиков к определенному провайдеру.
Q: Какие http запросы бы знаешь?
A: сервером достаточно пяти методов:
GET
— получение информации об объекте (ресурсе).POST
— создание нового объекта (ресурса).PUT
— полная замена объекта (ресурса) на обновленную версию.PATCH
— частичное изменение объекта (ресурса).DELETE
— удаление информации об объекте (ресурсе).- Реже используются методы
HEAD
(для получения заголовка объекта или ресурса) иOPTIONS
(возвращает список доступных методов).
Core Structure
Q: What are the 4 mandatory components of a REST API request?
A: Endpoint, Parameters (path/query), Headers, Body.
Q: Explain the difference between path parameters and query parameters.
A: Path parameters are embedded in the URL (e.g., /users/{id}
), while query parameters follow ?
(e.g., ?sort=desc
).
Q: What’s the purpose of HTTP headers in an API request?
A: They define metadata like authentication (Authorization
), content type (Content-Type
), or API version.
Endpoints
Q: How can one resource have multiple endpoints?
A: Different actions (CRUD) use different paths, e.g., POST /orders
vs. GET /orders/{id}
.
Q: Build an endpoint with a path parameter for userId
and query params for pagination.
A: /users/{userId}/orders?limit=10&page=2
.
Responses
Q: What does a 201
status code indicate?
A: Resource successfully created (often with a Location
header pointing to the new resource).
Q: When would an API response lack a body?
A: For 204 No Content
(successful deletion) or 304 Not Modified
(cached content).
Errors
Q: Is a 404
error client-side or server-side?
A: Client-side (invalid request for a non-existent resource).
Q: What’s the difference between 401
and 403
?
A: 401
means unauthenticated; 403
means unauthorized (no permissions).
Design
Q: Why is JSON preferred over XML in REST APIs?
A: JSON is lightweight, human-readable, and native to JavaScript.
Q: What’s the industry standard for API documentation?
A: OpenAPI Specification (formerly Swagger).
Q: Что такое интерфейс? И какие интерфейсы бывают?
A: совокупность средств методов и правил взаимодействия между элементами системы. Интерфейсы бывают пользовательские
и программные.
Q: Преимущества приложений с REST API
A: Единая логика валидации данных, единая точка входа, универсальность.
Клиент не имеет доступа к базе данных: безопасность.
Оптимизация нагрузки на базу данных.
Q: For which http requests there is no JSON body?
A: For GET and DELETE
JSON тело запроса есть у всех запросов кроме GET and DELETE
POST https://baseurl.com/apiname/1.0/objectName/actionName
Q: Основные принципы REST API?
A: Client-Server;
Cacheable(request has to have info about cache in buffer);
Uniform Interface(data is requested from one URL) - Для реализации единообразного интерфейса в REST API используется принцип HATEOAS (Hypermedia as the Engine of Application State);
Stateless(server can’t keep data, the request should have everything needed in itself);
Layered System(servers can be on different levels but need to interact only with neighbors)