【问题标题】:ASP.NET WEB API Multiple InterfacesASP.NET WEB API 多种接口
【发布时间】:2014-02-19 22:04:30
【问题描述】:

我正在设计带有两个接口的 ASP.NET WEB API 服务。第一个界面是只读的,第二个是完全支持 CRUD 的管理界面(用于 MVC 应用程序)。有谁知道我在哪里可以获得有关此类设置、任何教程、思考、示例设计文档的更多信息?

是否值得将它们分成两个接口或保持相同?但问题是,在只读模式下,我为每个对象公开 2-3 个属性,而对于管理员来说,有 10-15 个?

WCF 或设计规范的类似设置也可以。

【问题讨论】:

    标签: asp.net-mvc wcf service interface asp.net-web-api


    【解决方案1】:

    如果我了解您想要做什么,我建议您不要使用一个 URL,即 \dataStuff\dataView 拆分为另一个视图,也许只有管理员有权访问的 \dataStuff\edit\ 可以这样做:

    [Authorize(Roles = "Administrators")]
    public ActionResult edit()
    {
        return View();
    }
    

    然后在您查看的每个数据元素旁边,通过使用 User.IsInRole 将以下内容添加到 ONLY admin's

    @foreach (var item in Model.dataTable)
    {
        @* 
        write a value from the data table here
        *@
        @Html.ActionLink("edit", "edit").If(User.IsInRole("Administrators"))
        <br/>
    }
    

    显然您不必像这样显示您的数据,我只是表明您在数据库的每个元素的末尾添加一个编辑 ActionLink IF 用户是管理员。

    这使您的管理员可以像用户一样查看数据,并拥有他们需要的附加功能。代码重用优于具有管理员和非管理员两种状态的单个视图。

    对不起,如果这不是最好的解释,对 MVC 来说相当新

    【讨论】:

      【解决方案2】:

      似乎这个概念有时被称为 CQRS。 示例:http://martinfowler.com/bliki/CQRS.html

      猜你喜欢
      • 2012-03-18
      • 2020-05-27
      • 1970-01-01
      • 1970-01-01
      • 2019-07-18
      • 2014-09-17
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多