3

私は最近、たくさんの本を読んでいて、さらに Web 開発の実験をしています。分かりにくいところもあると思いますので、よろしくお願いします。

私は宿題を終わらせようとはしていません。私の知識にはいくつかの穴があり、それを埋めたいと思っています。あなたの意見で私を助けてください:)

REST の質問: ドキュメントを読むと、これは完全に理解できます (NODE.JS / Express) 例:

例 1 (取得):

app.get('/', function(req, res) {
    res.send('please select a collection, e.g., /collections/messages')
})

私の説明: サーバーのルートにヒットしたら、次のメッセージを送信します

例 2 (取得):

app.get('/collections/:collectionName/:id', function(req, res) {
    req.collection.findOne({name: req.collection.id(req.params.id)},
        function(e, result){
        if (e) return next(e)
        res.send(result)
    })
})

私の説明: URL がヒットしたら、URL (params.id にある) から id を取得し、それに基づいて検索を行います (つまり、MongoDB)。

例 3 (post):

app.post('/collections/:collectionName', function(req, res) {
    req.collection.insert(req.body, {}, function(e, results){
        if (e) return next(e)
        res.send(results)
    })
})

私の説明: URL がヒットしたら、req.body にあるペイロード (この場合は JSON) を取得し、新しいドキュメントとして挿入します。

質問:

  1. 例 1 と 2 はどちらも RESTfull ですか?

  2. 私は今、params.idと完全に混同しています。POST が rew.body で送信されることは理解しています... params.id とは何ですか? :ID などの URL 変数が含まれていますか?

  3. 私の説明は...正しいですか?

  4. POST が使用されているにもかかわらず、例 3 も REST ですか?

  5. 例 3、「/collections/:collectionName. ':collectionName' が URL で渡されるのはなぜですか? req.body にパラメーターとして (新しいデータと共に) 配置し、そこから取得できますか? それを行う利点は何ですか?

ありがとうございました

4

1 に答える 1