5

In Play フレームワークRESTfulを使用してアプリケーションを開発したいと考えていました。CRUD残念ながら、Play のルートでDELETEandを定義する方法が見つかりません。PUTたぶん、PlayPOSTで利用できるものがあるでしょうか?GET

4

6 に答える 6

6

本当にDELETE/PUTが使えないのですか? ドキュメントはそうではないと言います。

HTTP メソッド

HTTP メソッドは、HTTP でサポートされている有効なメソッド (GET、POST、PUT、DELETE、HEAD) のいずれかです。

http://www.playframework.org/documentation/2.0.4/JavaRouting

于 2012-12-12T18:37:36.267 に答える
5

Play 2.x には、1.x ブランチから知られている CRUD モジュールがありません (幸いなことに IMHO)。標準ではないメソッドを使用してルートを定義するDELETEPUT、ルートで必要なメソッドを使用する必要があります。

conf/ルート:

PUT     /put-item     controllers.Application.putItem()

いずれにせよ、ブラウザメソッド以外からそれらを使用するには、AJAX 呼び出しを作成する必要があります。このトピックに関する大きなGETステップバイステップのサンプルがあります。とにかく、定義することにより、一般的なjQuery.ajax()で構築することもできますリクエストPOSTtype

$.ajax({
  type: "PUT",
  url: "@routes.Application.putItem()",
  data: { name: "John", location: "Boston" }
}).done(function( msg ) {
  alert( "Data Saved: " + msg );
});
于 2012-12-12T18:43:11.203 に答える
1

Web ブラウザから PUT または DELETE を使用する場合は、OPTIONS メソッドを忘れないでください。

于 2012-12-13T10:23:15.817 に答える
0

これは、最も顕著な http 動詞を使用する play scala アプリケーションのルーターの例です。

GET     /                                    controllers.Application.listProjects
PUT     /projects/:name                      controllers.Application.createProject(name: String)
GET     /projects/list                       controllers.Application.listProjects
GET     /projects/:id                        controllers.Application.projects(id: Long)
PUT     /projects/:id/:name                  controllers.Application.addTaskToProject(name: String, id: Long)
PATCH   /tasks/:id                           controllers.Application.modifyTask(id: Long, color:Option[String] ?= None)

ここで play scala サンプル プロジェクト全体を見ることができます: https://github.com/nemoo/play-slick3-example

于 2016-04-08T20:27:48.007 に答える
0

削除と更新のために私がしたことは次のとおりです

 POST   /path/:id                 controllers.Controller.update(id: Integer)
 POST   /path/:id/delete          controllers.Controller.delete(id: Integer)

そしてコントローラーではただ

 public static Result delete(Integer id) {
    Result result = null;
    if(id>0){
        //your code
    }
    else{
        result = ok("invalid id");
    }
     return result;
}

削除と挿入でうまくいきました

Play フレームワークの RESTFul のみを使用することが目的で、Java を使用している場合は、CXF または Spring Web サービスまたは Jersey を使用することをお勧めします。Play は素晴らしいフレームワークですが、play に最適なのは scala です

于 2015-04-23T08:09:37.703 に答える