# Проєктування REST API (Go) > Принципи REST, версіонування, пагінація, фільтрація, HATEOAS, коди статусу, OpenAPI/Swagger - 20 питань зі співбесід - Mid-Level - [Питання зі співбесід: Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy.md) ## 1. Який фундаментальний принцип REST? **Відповідь** REST ґрунтується на принципі представлення ресурсів, доступних через унікальні URI. Кожен ресурс (користувач, продукт, замовлення) має URI і може оброблятися через стандартні HTTP-дієслова (GET, POST, PUT, DELETE). Ця ресурсо-орієнтована парадигма забезпечує масштабовану та слабко зв'язану архітектуру, де сервер не зберігає стан сесії клієнта. ## 2. Який HTTP-метод використовувати для ідемпотентного повного оновлення ресурсу? **Відповідь** PUT ідемпотентний і повністю замінює ресурс. Виклик PUT кілька разів з тими самими даними дає той самий результат, що й один виклик. Натомість POST не ідемпотентний (створив би кілька ресурсів), PATCH виконує часткові оновлення, а DELETE видаляє ресурс. Ідемпотентність PUT гарантує безпеку повторних спроб у разі помилок мережі. ## 3. Який HTTP-код повертати після успішного створення нового ресурсу? **Відповідь** Код 201 Created означає, що ресурс було успішно створено. Він супроводжується заголовком Location, що вказує на URI нового ресурсу. Код 200 OK надто загальний для створення, 204 No Content використовується, коли немає тіла відповіді, а 202 Accepted сигналізує про ще не завершену асинхронну обробку. ## Ще 17 доступних питань - Яка ключова відмінність відрізняє REST API від RPC API? - Що означає принцип statelessness у REST? Зареєструйся безкоштовно: https://sharpskill.dev/uk/login ## Інші теми співбесід Go - [Основи Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/go-basics.md): 25 запитань, Junior - [Структури даних Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/go-data-structures.md): 20 запитань, Junior - [Інтерфейси Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/go-interfaces.md): 18 запитань, Junior - [Обробка помилок](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/error-handling.md): 20 запитань, Junior - [Основи goroutines](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/goroutines-basics.md): 20 запитань, Junior - [Channels](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/channels.md): 22 запитань, Junior - [Go Modules](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/go-modules.md): 18 запитань, Mid-Level - [HTTP-сервер](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/http-server.md): 24 запитань, Mid-Level - [HTTP-клієнт](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/http-client.md): 18 запитань, Mid-Level - [Кодування JSON](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/json-encoding.md): 20 запитань, Mid-Level - [Database/SQL](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/database-sql.md): 22 запитань, Mid-Level - [Пакет context](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/context-package.md): 20 запитань, Mid-Level - [Testing](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/testing.md): 22 запитань, Mid-Level - [Патерни конкурентності](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/concurrency-patterns.md): 24 запитань, Mid-Level - [Примітиви синхронізації](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/sync-primitives.md): 22 запитань, Mid-Level - [Веб-фреймворки Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/go-web-frameworks.md): 20 запитань, Mid-Level - [gRPC](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/grpc.md): 22 запитань, Mid-Level - [Reflection](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/reflection.md): 20 запитань, Senior - [Керування пам'яттю](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/memory-management.md): 24 запитань, Senior - [Оптимізація продуктивності](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/performance-optimization.md): 22 запитань, Senior - [Generics](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/generics.md): 20 запитань, Senior - [Go Design Patterns](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/design-patterns.md): 24 запитань, Senior - [Microservices](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/microservices.md): 24 запитань, Senior - [Безпека та автентифікація](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/security-authentication.md): 24 запитань, Senior - [Docker & Containerization](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/docker-containerization.md): 20 запитань, Senior - [Kubernetes Basics](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/kubernetes-basics.md): 22 запитань, Senior - [Просунутий Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/advanced-go.md): 20 запитань, Senior - [Розробка CLI](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/cli-development.md): 20 запитань, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/rest-api-design