2016-04-12 20 views
1

Play Frameworkを使用してREST DELETE関数を使用する方法を理解しようとしています。ここで私が持っているものです。Play Framework Scala REST DELETE

マイモデル:

case class Task(id: Int, name: String, description: String, group: String) 

object Task { 

var list: List[Task] = Nil 

def save(task: Task) = { 
    list = list ::: List(task) 
} 

def all(): List[Task] = Nil 

def delete(id: Int){ 
    val b = list.toBuffer 
    b.remove(id) 
    b.toArray 
} 

は、ここで私は、削除のための私のコントローラを持っているものです。

def deleteTask(id: Int) = Action { 
    Task.delete(id) 
    Ok 
} 

と私のルート:

DELETE /tasks/id controllers.TaskController.deleteTask(id: Int)

を忘れました私の問題に言及する!これをテストして動作させるにはどうすればいいですか?私は、コマンドを使用します。

curl --include --request POST --header "content-type: application/json" --data '{"id":4, "name": "test5", "description": "testdesc1","group": "groupc"}' http://localhost:9000/tasks

をし、それが正常にポストします。 DELETEで同様の操作を行うにはどうすればよいですか?

+0

削除を扱うとき、それは、より直感的です。あなたの特定の問題は何ですか? – irundaia

+0

申し訳ありません、私は私の質問を編集しました! –

+0

削除カール要求を使用しますか? –

答えて

3

あなたのDELETE要求は現在正しく定義されていません。 idをパラメータとして使用する場合は、DELETE /tasks/:idにする必要があります。

あなたのScalaのコードに問題がラインb.remove(id)である - この場合にはbがタイプBufferLikeから実際にあるとremove methodはあなたのためにそれを使用する何をしません。指定されたindexの要素が実際に削除され、提供する要素は削除されません。したがって、id = 4を指定した場合は、5番目の要素を削除しようとしていて、受け取ったエラーページにつながる実行時例外であるIndexOutOfBoundsExceptionで失敗します。あなたはこのように、代わりに、リスト上のdiffmethodを使用することができます。val newList = list diff List(id)あなたのroutesファイルにすでにそれを指定している

:あなたはDELETE要求を定義している - これはあなたのカールのリクエストもDELETE 1でなければならないことを意味し:DELETEを使用する際に投稿するいかなる体は

curl -X DELETE "http://localhost:9000/tasks/4" 

ありません - あなたはちょうどあなたが削除したいリソースのIDを指定します。

ボーナス: HTTP 204のようないくつかの他の状態を返す考える - あなたのコードが正しいように思わ

+0

これは私のために働いていません。ルートリクエストを編集し、指示どおりにカールリクエストを試みましたが、エラーは発生しませんでした。 Play FrameworkエラーページのHTMLコードが返されました: http://i.imgur.com/b3b9WP8.png。 –

+0

だからわかりません。 –

+0

あなたはエラーを受け取りました - あなたのスクリーンショットにある「」タグを見てください。実行例外はおそらく実行時エラーです。今度は 'curl -v -X DELETE" http:// localhost:9000/tasks/4 "'を試してみてください。 – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/2097228/">Anton</a></span> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> <div> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="1038284119" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">関連する問題</div> <ul class="relative_list"> <li> 1. <a href="http://ja.uwenku.com/question/p-rfebksnj-nk.html" target="_blank" title="Scala Play Framework"> Scala Play Framework </a> </li> <li> 2. <a href="http://ja.uwenku.com/question/p-kmfnkiqz-gh.html" target="_blank" title="Play framework + scala"> Play framework + scala </a> </li> <li> 3. <a href="http://ja.uwenku.com/question/p-bswgldxx-cz.html" target="_blank" title="Play framework 2.5 scala i18n"> Play framework 2.5 scala i18n </a> </li> <li> 4. <a href="http://ja.uwenku.com/question/p-ctnbyeno-nd.html" target="_blank" title="REST API/DELETE METHOD/Slim Framework v3"> REST API/DELETE METHOD/Slim Framework v3 </a> </li> <li> 5. <a href="http://ja.uwenku.com/question/p-aiboixha-q.html" target="_blank" title="Eclipsify Play Framework Scala project on OSX 10.7"> Eclipsify Play Framework Scala project on OSX 10.7 </a> </li> <li> 6. <a href="http://ja.uwenku.com/question/p-yepbifzx-ea.html" target="_blank" title="Play Framework CRUD"> Play Framework CRUD </a> </li> <li> 7. <a href="http://ja.uwenku.com/question/p-fitfdpkc-ko.html" target="_blank" title="REST API ArrayList @DELETE"> REST API ArrayList @DELETE </a> </li> <li> 8. <a href="http://ja.uwenku.com/question/p-rplcprtk-dx.html" target="_blank" title="Rest DELETE Bad Request"> Rest DELETE Bad Request </a> </li> <li> 9. <a href="http://ja.uwenku.com/question/p-mkyidfii-br.html" target="_blank" title="Play 2.0 + Java vs. Play 2.0 + Scala?"> Play 2.0 + Java vs. Play 2.0 + Scala? </a> </li> <li> 10. <a href="http://ja.uwenku.com/question/p-paqwxivh-ct.html" target="_blank" title="Scala Play Json Reads"> Scala Play Json Reads </a> </li> <div> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4606349252"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <li> 11. <a href="http://ja.uwenku.com/question/p-crgzkxdi-bu.html" target="_blank" title="scala + play on ubuntu"> scala + play on ubuntu </a> </li> <li> 12. <a href="http://ja.uwenku.com/question/p-fhrdaucd-oa.html" target="_blank" title="Scala play Guice injection"> Scala play Guice injection </a> </li> <li> 13. <a href="http://ja.uwenku.com/question/p-gdvbgure-kx.html" target="_blank" title="Scala Play WebSockets"> Scala Play WebSockets </a> </li> <li> 14. <a href="http://ja.uwenku.com/question/p-oteqkrki-hb.html" target="_blank" title="Play Framework SBT import play.api.libs.streams"> Play Framework SBT import play.api.libs.streams </a> </li> <li> 15. <a href="http://ja.uwenku.com/question/p-kazippom-cg.html" target="_blank" title="Sorm and Play Framework 2.1"> Sorm and Play Framework 2.1 </a> </li> </ul> </div> <div> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="1575177025"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img.uwenku.com/uwenku/script/side.js?t=1644592048742"></script> <script type="text/javascript" src="http://img.uwenku.com/uwenku/plugin/highlight/highlight.pack.js"></script> <link href="http://img.uwenku.com/uwenku/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="5415218910" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> 最新の質問 </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://ja.uwenku.com/question/p-tfebeilo-pn.html" target="_blank" title="switch文で別のケースの中にケースを置くことができるのはなぜですか?"> switch文で別のケースの中にケースを置くことができるのはなぜですか? </a> </li> <li class="side_article_list_item"> 2. <a href="http://ja.uwenku.com/question/p-gfiebxfv-oo.html" target="_blank" title="一致するMySqlストアドプロシージャ"> 一致するMySqlストアドプロシージャ </a> </li> <li class="side_article_list_item"> 3. <a href="http://ja.uwenku.com/question/p-yoytxodu-ot.html" target="_blank" title="ライブラリにスクリプトをインストールしてインポートするにはどうしたらいいですか?"> ライブラリにスクリプトをインストールしてインポートするにはどうしたらいいですか? </a> </li> <li class="side_article_list_item"> 4. <a href="http://ja.uwenku.com/question/p-mylmfilj-ox.html" target="_blank" title="Djangoでのセロリのデモンストレーション"> Djangoでのセロリのデモンストレーション </a> </li> <li class="side_article_list_item"> 5. <a href="http://ja.uwenku.com/question/p-ssludylu-ow.html" target="_blank" title="明示的に定義された明示的コンストラクタ対暗黙的に定義されたコンストラクタ"> 明示的に定義された明示的コンストラクタ対暗黙的に定義されたコンストラクタ </a> </li> <li class="side_article_list_item"> 6. <a href="http://ja.uwenku.com/question/p-bbrwuttz-qd.html" target="_blank" title="forループ内のフォルダ+コンテンツ全体を削除する方法は?私が働いているスクリプトの"> forループ内のフォルダ+コンテンツ全体を削除する方法は?私が働いているスクリプトの </a> </li> <li class="side_article_list_item"> 7. <a href="http://ja.uwenku.com/question/p-ctmpfvnn-pz.html" target="_blank" title="複数のユーザーコントロールをASP.NETとjQueryでPDFにエクスポートする最も良い方法"> 複数のユーザーコントロールをASP.NETとjQueryでPDFにエクスポートする最も良い方法 </a> </li> <li class="side_article_list_item"> 8. <a href="http://ja.uwenku.com/question/p-whwyszxk-py.html" target="_blank" title="Webdriver.get(URL)オープンFirefoxのではなく、URL"> Webdriver.get(URL)オープンFirefoxのではなく、URL </a> </li> <li class="side_article_list_item"> 9. <a href="http://ja.uwenku.com/question/p-ddnquhfr-ok.html" target="_blank" title="Javaの関数を正しく上書きする方法は?"> Javaの関数を正しく上書きする方法は? </a> </li> <li class="side_article_list_item"> 10. <a href="http://ja.uwenku.com/question/p-umyerwcp-pb.html" target="_blank" title="Cコードpthread順番に印刷する3つのスレッドを持つセマフォプログラム"> Cコードpthread順番に印刷する3つのスレッドを持つセマフォプログラム </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> 関連する問題</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://ja.uwenku.com/question/p-rfebksnj-nk.html" target="_blank" title="Scala Play Framework"> Scala Play Framework </a> </li> <li class="side_article_list_item"> 2. <a href="http://ja.uwenku.com/question/p-kmfnkiqz-gh.html" target="_blank" title="Play framework + scala"> Play framework + scala </a> </li> <li class="side_article_list_item"> 3. <a href="http://ja.uwenku.com/question/p-bswgldxx-cz.html" target="_blank" title="Play framework 2.5 scala i18n"> Play framework 2.5 scala i18n </a> </li> <li class="side_article_list_item"> 4. <a href="http://ja.uwenku.com/question/p-ctnbyeno-nd.html" target="_blank" title="REST API/DELETE METHOD/Slim Framework v3"> REST API/DELETE METHOD/Slim Framework v3 </a> </li> <li class="side_article_list_item"> 5. <a href="http://ja.uwenku.com/question/p-aiboixha-q.html" target="_blank" title="Eclipsify Play Framework Scala project on OSX 10.7"> Eclipsify Play Framework Scala project on OSX 10.7 </a> </li> <li class="side_article_list_item"> 6. <a href="http://ja.uwenku.com/question/p-yepbifzx-ea.html" target="_blank" title="Play Framework CRUD"> Play Framework CRUD </a> </li> <li class="side_article_list_item"> 7. <a href="http://ja.uwenku.com/question/p-fitfdpkc-ko.html" target="_blank" title="REST API ArrayList @DELETE"> REST API ArrayList @DELETE </a> </li> <li class="side_article_list_item"> 8. <a href="http://ja.uwenku.com/question/p-rplcprtk-dx.html" target="_blank" title="Rest DELETE Bad Request"> Rest DELETE Bad Request </a> </li> <li class="side_article_list_item"> 9. <a href="http://ja.uwenku.com/question/p-mkyidfii-br.html" target="_blank" title="Play 2.0 + Java vs. Play 2.0 + Scala?"> Play 2.0 + Java vs. Play 2.0 + Scala? </a> </li> <li class="side_article_list_item"> 10. <a href="http://ja.uwenku.com/question/p-paqwxivh-ct.html" target="_blank" title="Scala Play Json Reads"> Scala Play Json Reads </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://ja.uwenku.com/contact">お問い合わせ</a></li> <li>© 2020 JA.UWENKU.COM</li> <li><a target="_blank" href="https://beian.miit.gov.cn/">沪ICP备13005482号-4</a></li> <li><script type="text/javascript" src="https://v1.cnzz.com/z_stat.php?id=1280101193&web_id=1280101193"></script></li> <li><a href="http://www.uwenku.com/" target="_blank" title="优文库">简体中文</a></li> <li><a href="http://hk.uwenku.com/" target="_blank" title="優文庫">繁體中文</a></li> <li><a href="http://ru.uwenku.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.uwenku.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.uwenku.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.uwenku.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.uwenku.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.uwenku.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.uwenku.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.uwenku.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.uwenku.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.uwenku.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.uwenku.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?f78a970f17b19a79fc477a3378096f29"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>