Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVCWebAPI作为中间层服务_C#_Asp.net Mvc_Asp.net Mvc 4_Asp.net Web Api - Fatal编程技术网

C# MVCWebAPI作为中间层服务

C# MVCWebAPI作为中间层服务,c#,asp.net-mvc,asp.net-mvc-4,asp.net-web-api,C#,Asp.net Mvc,Asp.net Mvc 4,Asp.net Web Api,在我们最近的应用程序中,我们计划使用MVCWebAPI作为中间层服务。也就是说,前端将访问WebAPI中间层服务,以从DB获取所需的所有数据,并将数据更新回DB。除此之外,我们还需要许多其他方法。例如,检查系统中是否已经存在用户,验证地址等。现在我发现我的webapiconfig.cs路由变得越来越复杂。例如,WebApi项目中的我的UserController将有以下方法 公共用户Get(int userId) { } 要管理所有这些,我可能需要webapiconfig.cs中的许多路由配置。

在我们最近的应用程序中,我们计划使用MVCWebAPI作为中间层服务。也就是说,前端将访问WebAPI中间层服务,以从DB获取所需的所有数据,并将数据更新回DB。除此之外,我们还需要许多其他方法。例如,检查系统中是否已经存在用户,验证地址等。现在我发现我的webapiconfig.cs路由变得越来越复杂。例如,WebApi项目中的我的UserController将有以下方法

公共用户Get(int userId) { }


要管理所有这些,我可能需要webapiconfig.cs中的许多路由配置。当其他控制器出现问题时,我不知道如何处理这些问题。我应该使用属性计算吗?非常感谢您的任何建议。谢谢。

如果您可以选择使用go for。在配置路由时,您可以节省大量的开发工作

还要确保您遵循的是基于资源的路由设计和REST原则,而不是旧的RPC样式的路由。i、 e对于基本积垢操作:-

  • 创建-
    HTTP-POST
    /user

  • 读取-
    httpget
    /user
    /user/{id}

  • 更新-
    HTTP将
    放到
    /user

  • 删除-
    HTTP删除
    /user/{id}
例如,用于更新用户

而不是路由
/user/UpdateUser

你应该做一个测试

HTTPPUT to /user/

有关休息的更多提示,请查看。

谢谢您的回复。因此,只要有可能,我就应该使用RESTful服务,并在其他情况下使用属性路由(WebAPI2)。对于像IsUserExists/ChangePassword这样的方法,我必须依赖属性路由。与WCF相比,尽管它增加了SOAP和其他复杂性,但您认为在中间层使用WCF更好吗?(一个单独托管的服务层)请注意,asp.NETWebAPI是一种架构,它有助于以更简单的方式构建REST服务。如果您只需要基于http的服务,为什么不使用web api本身。对于更改密码等方法,您可以创建url,如/user/{userid}/password change抱歉,我不理解最后一部分。“密码更改”是UserController中的一种操作方法吗?
HTTPPUT to /user/