Можно ли использовать один маршрут GET для всех этих сценариев ios?
Вы можете использовать один маршрут для всех этих сценариев ios:
GET /orders // get all
GET /orders?id=409,5678,2987 // get these orders by id
GET /orders?id=9463 // get this order by id
GET /orders?person=jackwelch // get orders for this person
GET /orders?company=aaWidget // get orders for this company
Или у нас должны быть отдельные маршруты для этого сценария ios?
Это в значительной степени вопрос дизайнерского мнения. Как правило, я поклонник того, чтобы количество отдельных форм URL-адресов было минимальным и практичным, и перегружаю один и тот же маршрут для разных входных данных, когда это имеет смысл и не кажется слишком произвольно растянутым, чтобы все это подходило. Но, в конечном счете, это суждение, основанное на понимании общей картины запросов, которые вам нужно поддерживать, и того, как они, скорее всего, будут использоваться.
И помните, что для добавления нового заказа вы бы использовать POST и модифицировать существующий заказ, вы будете использовать PUT и удалять заказ, вы используете DELETE
POST /orders // create new order, data in body of request
PUT /orders/:id // modify existing order, data in body of request
DELETE /orders/:id // delete an order
Итак, все это можно сделать с помощью одной /orders
структуры URL для внешнего мира. Внутренне, он, вероятно, будет структурирован как несколько разных обработчиков маршрутов, просто чтобы сделать код для его обработки более простым:
app.get("/orders", ...); // handle order queries (use req.query)
app.post("/orders", ...); // create new order (use req.body)
app.put("/orders/:id", ...); // modify existing order (use req.params.id and req.body)
app.delete("/orders/:id", ...); // delete existing order (use req.params.id)
Еще одна приятная вещь в этой структуре, это то, что она очень расширяемая. Вы можете добавить больше способов запроса заказов, только добавив дополнительные параметры строки запроса без общего изменения структуры или даже каких-либо новых обработчиков маршрута.