2017-08-05 31 views
1

Swagger apiを使用してREST APIを作成しています。今、私は(私はオンラインの多くのAPIで、このようなパスを見てきました)、挿入する方法を記述し、更新や方法を以下に削除する:(挿入用)REST APIの異なるメソッドに同じパス名を書くことはできますか?

  1. POST

/学生

  • PUT(更新用)
  • /学生/ {studentId}

  • /学生は/ {studentId}

    ここで、1は大丈夫ですが、2及び3は、(削除用)

  • あるDELETE同じパス(ただし、異なる方法があります)。 Swagger APIは私がこのように書くとエラーになります。これは本当に許可されていませんか?

    許可されていない場合は、長くしないで別のパスを定義しても「クール」に見える最適な方法は何ですか?同じパスに異なる方法(GET/PUT/DELETEの/ etc)を定義するために

    +0

    それは「Node.jsの中で許可され、そこshouldnています何か矛盾があります..エラーで何が言われていますか? –

    +0

    スワッガーエラー 等価パスがすでに存在します –

    +0

    [Swagger:異なるパラメーターにもかかわらず "同等のパスが既に存在します"]の重複の可能性があります(https://stackoverflow.com/questions/35478531/swagger-equivalent-path-already-exists-despite-異なるパラメータ) –

    答えて

    2

    、単にこのパスの下でこれらのメソッドをリストし、そのよう:

    paths: 
        /students/{studentId}: 
        # Common parameter for all methods on this path 
        parameters: 
         - name: studentId 
         in: path 
         ... 
    
        get: 
         summary: Get a student by ID 
         ... 
    
        put: 
         summary: Update a student 
         ... 
    
        delete: 
         summary: Delete a student 
         ... 
    
    +0

    何を書きましたか?同じ道に置く?もう少し説明していただけますか? –

    +0

    ああ、私はそれについて読んだことはありません。これは私が実際に欲しかったものです。しかし、公式には同じパスの下で複数のメソッドを書くことが許されていますか? –

    +1

    ^^これは、複数のHTTP動詞GET/PUT/DELETE/etcを定義する正しい(そして正式な)方法です。同じ経路でGitHubについての議論は、同じことですが、パスは同じですがパスのパラメータとは異なる名前です(例: '/ students/{id}' vs ''/students/{username} ')。 – Helen

    関連する問題