我听到一些人发表评论说,新 ASP.NET WebAPI (DbDataController) 中 Entity Framework 数据的默认 Controller /提供程序严格来说不是基于 REST 的服务,而更像是 RPC 样式的服务。我知道 WebAPI 框架允许您创建任何类型的 HTTP 服务、REST 或其他方式,但有人可以向我具体解释一下 DbDataController 公开的服务是什么,使其不是真正的 REST 服务吗?
最佳答案
REST 架构风格描述了以下六个应用于架构的约束,同时让各个组件的实现可以自由设计:
客户端-服务器
无状态
可缓存的
分层系统
按需代码(可选)
统一接口(interface)
http://en.wikipedia.org/wiki/Representational_state_transfer#Constraints
“REST 架构的唯一可选约束是按需代码。如果服务违反了任何其他约束,严格来说不能认为它是 RESTful。DbDataController 类将 Entity Framework 模型公开为 HTTP 服务。这些服务与 WCF 数据服务有很大的功能重叠,例如 CRUD 支持、元数据和请求批处理。它们甚至部分模仿了 OData 的查询字符串格式。但是这些服务遵循 RPC 风格,它们不是 RESTful 并且不使用 OData。”来自该网站的报价:
WCF Data Services and ASP.NET Web API
关于asp.net - 是什么让 DbDataProvider 不是 RESTful?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9689225/