Пізня відповідь, але я додам деяке додаткове розуміння того, що поділилося, а саме, що до запиту є кілька типів "параметрів", і ви повинні це врахувати.
- Локатори - наприклад, ідентифікатори ресурсів, такі як ідентифікатори або дія / перегляд
- Фільтри - наприклад, параметри, які забезпечують пошук, сортування або звуження набору результатів.
- Стан - Наприклад ідентифікація сеансу, клавіші api, whatevs.
- Зміст - Напр. Дані, що підлягають збереженню.
Тепер давайте розглянемо різні місця, куди ці параметри могли б перейти.
- Попросіть заголовки та файли cookie
- Рядок запиту URL-адреси ("GET" vars)
- URL-шляхи
- Рядок / багаточастинний запит для тіла ("POST" vars)
Як правило, ви хочете, щоб штат був встановлений у заголовках чи файлах cookie, залежно від типу інформації про стан. Я думаю, що ми можемо з цим згодитися всі. Використовуйте спеціальні заголовки http (X-My-Header), якщо вам потрібно.
Аналогічно, Вміст має належати лише одному місцю, що знаходиться в тілі запиту, або як рядки запитів, або як багатоповерховий та / або контент JSON. Це відповідає тому, що ви отримуєте від сервера, коли він надсилає вам вміст. Тож ви не повинні бути грубими і робити це по-іншому.
Локатори, такі як "id = 5" або "action = refresh" або "page = 2", мали би сенс мати як URL-шлях, наприклад, mysite.com/article/5/page=2
де частково ви знаєте, що повинна означати кожна частина (основи, такі як стаття та Очевидно, 5 означає отримати мені дані типу статті з id 5), а додаткові параметри вказані як частина URI. Вони можуть бути у формі page=2
або page/2
якщо ви знаєте, що після певного пункту в URI "папки" є парними ключами-значеннями.
Фільтри завжди йдуть у рядку запиту, оскільки, хоча вони є частиною пошуку потрібних даних, вони є лише там, щоб повернути підмножину або модифікацію того, що Локатори повертаються поодинці. Пошук у mysite.com/article/?query=Obama
(підмножині) - це фільтр, і так само /article/5?order=backwards
(модифікація). Подумайте, що це робить, а не лише те, що називається!
Якщо "view" визначає вихідний формат, то це фільтр ( mysite.com/article/5?view=pdf
), оскільки він повертає модифікацію знайденого ресурсу, а не вказує, на який ресурс ми хочемо. Якщо він замість цього вирішує, яку саме частину статті ми побачимо ( mysite.com/article/5/view=summary
), то це локатор.
Пам'ятайте, звуження набору ресурсів фільтрує. Виявлення чогось конкретного в межах ресурсу - це пошук ... так. Фільтрація підмножини може повернути будь-яку кількість результатів (навіть 0). Розташування завжди знайде той конкретний екземпляр чогось (якщо він існує). Фільтрація модифікацій повертає ті самі дані, що й локатор, за винятком модифікованих (якщо така модифікація дозволена).
Сподіваюсь, це допомогло подарувати людям декілька моментів Юреки, якщо вони загубилися, де розмістити речі!