Я довольно новичок в узле и express.js, и я новичок в концепции приложений REST. Я хочу закодировать типичное приложение CRUD, какой-то дневник. Следовательно, у меня есть набор записей, можно просматривать одну запись и добавлять, редактировать и удалять запись. Я еще не совсем понял, как URi должны быть настроены для представления API соответствия REST. Я бы создал что-то подобное в моем app.js:Express.js: Является ли это интерфейсом RESTful?
// GET REQUEST ROUTING
app.get('/', diary_router.home);
app.get('/entries/', diary_router.listEntries);
app.get('/entries/:id', diary_router.getSingleEntry);
// POST REQUEST ROUTING
app.post('/entries/', diary_router.addEntry);
// PUT REQUEST ROUTING
app.put('/entries/', diary_router.updateEntry);
// DELETE REQUEST ROUTING
app.delete('/entries/', diary_router.deleteEntry);
Может ли это называться интерфейсом соответствия REST? Должен ли я достаточно добавить соответствующее действие в маршрутах, таких, как это и делает элемент-ID должен быть показан в URL для PUT и DELETE действия тоже ?:
// GET REQUEST ROUTING
app.get('/', diary_router.home);
app.get('/entries/', diary_router.listEntries);
app.get('/entries/show/:id', diary_router.getSingleEntry);
// POST REQUEST ROUTING
app.post('/entries/add/', diary_router.addEntry);
// PUT REQUEST ROUTING
app.put('/entries/update/:id', diary_router.updateEntry);
// DELETE REQUEST ROUTING
app.delete('/entries/delete/:id', diary_router.deleteEntry);
Что было бы наилучшей практики здесь? Буду признателен за любую оказанную помощь. B.
Hi deoxxa, Спасибо за ваш ответ. Насколько мне известно, метод methodOverride по умолчанию устанавливается в express. Следующий вопрос: Как я могу создать запрос PUT? Могу ли я использовать его как атрибут '
Это зависит от браузера - я не уверен, какие из них поддерживают подобные HTTP-методы. Способ, которым работает middleware methodOverride, заключается в том, что вы используете '' или похожи, чтобы указать метод, несмотря на то, что он просто является регулярным запросом POST, и средство middleware методаOverride установит свойство 'method' в запросе, который вы получите в своем экспресс-приложении. – deoxxa
Этот подробный комментарий, вероятно, должен быть поправкой на ваш оригинальный ответ! +1 в противном случае, отличный ответ. Будет читать снова! A ++ – naomik