2016-06-28 10 views
0

こんにちはに送っ複数のエンティティは、私は、ユーザーが場所にレビューを追加しようとしていますポストウェブAPI

public void AddReview(Guid locationId, ReviewDto review, UserDto user) 
     { 
      var location = _locationRepository.Get(locationId); 
      var reviewModel = new Review 
      { 
       Comment = review.Comment, 
       Rate = review.Rate, 
       Location = location, 
       LocationId = location.Id, 
       User = new User 
       { 
        Name = user.Name, 
        Email = user.Email, 
        Password = user.Password 
       }, 
       UserId = user.Id 

      }; 
      _reviewRepository.Add(reviewModel); 
      _reviewRepository.Save(); 
      location.AddReview(reviewModel); 

     } 
    } 

それが送信され、ユーザーとレビューすることが可能です私は、私のBLLに次のコードを持っていますどちらも投稿からですか?

どのようにU.R.I. 〜のように見えるはずです..私は /api/location/{id}/review/user(POST)について考えています....私は知らない、私はいくつかのヘルプに感謝します..ありがとうございます!私はは、そのリソースにアクセスするとき、それは奇妙な投稿Aになるので、あなただけ、/ユーザーエンドポイントを使用したいと思いますこれを行う1つの方法は

/api/location/{id}/review 

でその正確なペイロードを掲示することになる

答えて

0

(基本的に)ユーザーエンドポイントにレビューします。あなたがREST level 3について話しているのであれば、レビューからユーザーへのリンクを持つことができます。あるいは、ユーザーをレビューリソースに埋め込んで、両方を1回の呼び出しで取得するだけでもかまいません。言われていること

、最もオーソドックスなアプローチは、おそらく、レビューを追加するリソースに移動し、ユーザーの追加関係のいくつかの並べ替えを追跡し、ユーザーがPOST(段階的に追加することでしょう。

+0

私は、ユーザーが既にあると仮定私のreviewDtoはLocationIdとUserIdを持っています –

+0

私はそれを逆に想像したいと思います:ユーザにナビゲートしてから、レビューだけを投稿することもできます(ユーザーIDはURLから推測することもできますが、必ずしも本文から推測する必要はありません) –

関連する問題