【问题标题】:Multiple entities send in Post Web Api多个实体在 Post Web Api 中发送
【发布时间】:2016-06-28 08:26:45
【问题描述】:

您好,我正在尝试向用户添加评论

我的 Bll 中有以下代码

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);

        }
    }

可以从 Post 发送 User 和 Review 吗?

U.R.I.应该看起来像..我想 /api/location/{id}/review/user (POST)....我不知道,我会很感激一些帮助..谢谢!!

【问题讨论】:

    标签: c# .net rest asp.net-web-api http-post


    【解决方案1】:

    这样做的一种方法是将确切的有效负载发布到

    /api/location/{id}/review
    

    我想说你只会在访问该资源时使用 /user 端点,因为将评论(基本上)发布到用户端点会很奇怪。如果您在谈论 REST level 3,您可以有一个从评论到用户的链接。或者,您可以简单地将用户嵌入评论资源中,以便在一次调用中同时获得它们。

    话虽如此,最正统的方法可能会逐步添加它们(添加评论,转到资源,遵循某种用户添加关系并发布用户。

    【讨论】:

    • 我想用户已经发布,登录,并且他添加了对某个位置的评论......我的 reviewDto 有一个 LocationId 和一个 UserId
    • 那么我会反过来想象:导航到用户,然后遵循评论添加关系,只发布评论(也可以从 url 推断出 userId,不一定从身体)
    猜你喜欢
    • 1970-01-01
    • 2016-05-12
    • 2018-04-27
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多