Використовуйте URL-адреси для вказівки об’єктів, а не дій:
Зверніть увагу на те, що ви вперше згадали, не є RESTful:
/questions/show/<whatever>
Натомість вам слід використовувати ваші URL-адреси, щоб вказати свої об’єкти:
/questions/<question>
Потім ви виконуєте одну з наведених нижче операцій на цьому ресурсі.
ОТРИМАТИ:
Використовується для отримання ресурсу, запиту списку ресурсів, а також для запиту інформації про ресурс лише для читання.
Щоб отримати джерело запитань:
GET /questions/<question> HTTP/1.1
Host: whateverblahblah.com
Щоб перерахувати всі ресурси запитань:
GET /questions HTTP/1.1
Host: whateverblahblah.com
ПОСТ:
Використовується для створення ресурсу.
Зверніть увагу, що наступним є помилка:
POST /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
Якщо URL-адреса ще не створена, ви не повинні використовувати POST для її створення, вказуючи назву. Це має призвести до помилки, яку ресурс не знайдено, оскільки його ще не існує. Спочатку слід ВСТАВИТИ ресурс на сервер. Ви можете стверджувати, що створюючи нове запитання, ви також оновлюєте ресурс / questions, оскільки тепер він поверне ще одне питання зі свого списку питань.
Ви повинні зробити щось подібне для створення ресурсу за допомогою POST:
POST /questions HTTP/1.1
Host: whateverblahblah.com
Зауважте, що в цьому випадку не вказано ім’я ресурсу, шлях до URL-адреси нових об’єктів буде вам повернено.
ВИДАЛИТИ:
Використовується для видалення ресурсу.
DELETE /questions/<question> HTTP/1.1
Host: whateverblahblah.com
ВСТАНОВИТИ:
Використовується для створення або перезапису ресурсу, коли ви вказуєте URL-адресу ресурсів.
Для нового ресурсу:
PUT /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
Щоб замінити існуючий ресурс:
PUT /questions/<existing_question> HTTP/1.1
Host: whateverblahblah.com
... Так, вони однакові. PUT часто описується як метод "редагування", оскільки, замінивши весь ресурс на дещо змінену версію, ви відредагували те, що клієнти ОТРИМАЮТЬ при наступній роботі.
Використання REST у формах HTML:
Специфікація HTML5 визначає GET та POST для елемента форми .
Атрибут вмісту методу - це перерахований атрибут із такими ключовими словами та станами:
- Ключове слово GET, що відображається у стані GET із зазначенням методу HTTP GET.
- Ключове слово POST, що відображається у стан POST, що вказує на метод HTTP POST.
Технічно специфікація HTTP не обмежує вас лише цими методами. Ви технічно вільні додавати будь-які методи, які хочете, проте на практиці це не є гарною ідеєю. Ідея полягає в тому, що всі знають, що ви використовуєте GET для читання даних, тому це заплутає справи, якщо ви вирішите замість цього використовувати READ. Тим не менше ...
ЛІК:
Це метод, який був визначений у офіційному RFC. Він призначений для використання, коли ви хочете надіслати лише часткову модифікацію ресурсу, він буде використовуватися подібно до PUT:
PATCH /questions/<new_question> HTTP/1.1
Host: whateverblahblah.com
Різниця полягає в тому, що PUT повинен надіслати весь ресурс, незалежно від того, наскільки великий він порівняний із тим, що насправді змінилося, тоді як PATCH ви можете надіслати лише зміни.