首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Asp.Net Web API 2第六课——Web API路由和动作选择

在Web API中,通常约定是忽略“{action}”。 Defaults(默认值) 如果你提供默认值,那么这个路由将匹配缺少这些片段URI。...b:从这个列表中,试着在路由字典或是在URI查询字符串中,找到每个参数匹配。匹配是与大小写无关,且与参数顺序无关。   ...其基本思想是,可以从URI、或请求体、或一个自定义绑定来获取参数值。对于来自URI参数,我们希望确保URI在其路径(通过路由字典)或查询字符串中实际包含了一个用于此参数值。...3.对于动作各个参数,如果参数取自URI,那么该参数名必须在路由字典或URI查询字符串中能够被找到。(可选参数和复杂类型除外)。 4.试图匹配最多数目的参数。最佳匹配可能是一个无参数方法。...version=1.5&details=1 路由匹配: 该URI与名为“DefaultApi”路由匹配。路由字典包含以下条目:controller:"products",id:"1"。

92520

Asp.Net Web API(二)

(); 4 } 这个方法是以Get开头,所以通过约定映射Get请求,此外,因为不包含参数,它映射一个不包含在路径中id字段URI 第二个方法:通过产品编号获取一个产品信息,在控制器添加方法如下 1...这个参数被映射到URI路径中id字段。这个Asp.Net Web API框架自动把id参数转换为正确int数据类型,如果id无效,就会抛出一个HttpResponseException异常。...因此,窗体中“api/products?category=category”URI将映射到此方法。...这个方法有两个参数,一个是产品id和更新产品,id参数是从URI中获得,product参数是从请求正文反序列化得来。...默认情况下,ASP.NET Web API框架从路由获取简单参数类型,从请求正文获取复杂类型。 第五个方法:删除产品,在控制器添加代码如下。

1.9K10
您找到你想要的搜索结果了吗?
是的
没有找到

Asp.Net Web API 2第五课——Web API路由

如果你熟悉Asp.Net MVC,Web API路由与Asp.Net MVC路由是非常类似的。这主要区别就是Web API使用是HTTP方法,而不是URI路径来选择Action。...当Web API框架接收一个HTTP请求时,它会试图根据路由表中一个路由模板来匹配其URI。如果无路由匹配,客户端会接收到一个404(未找到)错误。...例如,以下URI与这个默认路由匹配: /api/contacts /api/contacts/1 /api/products/gizmo1 然而,以下URI不匹配,因为它缺少“api”片段: /contacts...通过在你Controller上使用attributes,你可以启用其他HTTP方法。稍后我们就会看到一个例子。   3.路由模版中其他占位变量,例如{id},将被映射成Action参数。...注意,URI{id}片段如果出现,会被映射成Actionid参数。在这个例子中,这个控制器定义了两个GET方法,一个带有id参数和一个不带有id参数

1.2K50

Asp.Net Web API 2第十八课——Working with Entity Relations in OData

本文示例代码下载地址为http://pan.baidu.com/s/1o6lqXN8 大多数数据集定义实体间关系:客户有订单、书籍有作者、产品有供应商。...客户端可以使用OData操作实体间关系。给定一个产品,你可以找到该产品供应商。您也可以创建或者删除关系。例如,您也可以为一个产品设置一个供应商。   ...这个方法必须采用一个命名为“key”参数,用来匹配父类数据类型key。 它也是很重要在键参数上拥有【FromOdataUri】属性。...例如,由产品到供应商链接看起来像这样: /Products(1)/$links/Supplier 为了创建一个新链接,这个客户端发送了一个post请求到这个链接URI。...接下来辅助方法将会展示如何处理它。这个方法调用Web API路由过程,返回一个OData实体,展现被转换OData路径。对于一个链接URI,这个片段数中应该有一个实体键。

74351

ASP.Net MVC开发基础学习笔记:五、区域、模板页与WebAPI初步

可以从上图中看出,区域功能类似一个小MVC项目,麻雀虽小五脏俱全,有自己控制器、模型、视图还有路由设置。...每个区域表示整个应用程序一个独立功能。 1.2 注册区域路由   在MVC中添加一个Area区域之后,会默认帮我们注册这个区域路由规则。...,通过把另一个路由添加到区域路由集合中实现。...你可能感到疑惑:为什么我们不能在主应用程序路由定义中指定Admin部分?...@RenderSection有两个个参数,第一个参数用于定义section名称,第2个参数是布尔类型,如果为TRUE,表示内容页必须定义这个section,如果为false,则表示内容页可定义section

2.2K20

JavaScript 设计模式学习第八篇- 工厂模式

然而作为灵活 JavaScript,我们不必如此较真,可以把易变参数提取出来: // 饭店方法 class Restaurant { constructor() { this.menuData...当然这里如果菜品参数不太一致,可以在 addMenu 时候注册构造函数或者类,创建时候返回 new 出对应类实例,灵活变通即可。 3....} } // 产品类1 class Product1 { constructor() { this.type = 'Product1' } operate() { console.log...mode 是路由创建模式,这里有三种 History、Hash、Abstract,前两种我们已经很熟悉了,History 是 H5 路由方式,Hash 是路由中带 # 路由方式,Abstract...代表非浏览器环境中路由方式,比如 Node、weex 等;this.history 用来保存路由实例,vue-router 中使用了工厂模式思想来获得响应路由控制类实例。

30410

Asp.Net Web API(三)

category=category 然而,以下URI就不匹配,因为它缺少“api”字段 /product/1              注意:在路由中使用“api”原因是为了避免与ASP.NET MVC...在Web API中,通常约定是忽略{Action}。 Defaults(默认值)   如果你提供默认值,那么这个路由匹配缺少这些片段URI。...“http://localhost/api/products”与这个路由是匹配。...对于来自URI参数,我们希望确保URI在其路径(通过路由字典)或查询字符串中实际包含一个用于此参数值。    ...对于Action各个参数,如果参数来自URI,那么该参数名必须在路由字典或URI查询字符串中能够被找到(可选参数和复杂参数类型除外) 试图匹配最多数目的参数。最佳匹配可能是一个无参数方法。

1.7K50

Asp.Net Web API 2第八课——Web API 2中属性路由

在该类型路由中, 你可以定义一个或者多个被参数化字符串模版。当这个框架接收到一个请求时,它匹配一个URI路由模版。...API版本控制  在下面的例子中,"api/v1/products"相对于"api/v2/products"将被路由到不同控制器。.../api/v1/products /api/v2/products 重载URI片段 在下面的例子中,"1"是一个阶数,而"pending"被映射到集合。...这个字符串“customers/{customerId}/orders”是路由URI模版。在路由模版中“{customerId}”参数匹配了在方法中customerId参数名称。...除非在IInlineConstraintResolver 实现特地添加它们。 6、可选URI参数和默认值  你可以通过添加一个问号标记路由参数使成为一个可选URI参数

84940

大数据技术之_28_电商推荐系统项目_02

(使用是向量点积公式)     *     * @param product1     * @param product2     * @return     */   def consinSim(product1...(向量长度)   } 4.3.3 模型评估和参数选取   在上述模型训练过程中,我们直接给定了隐语义模型 rank,iterations,lambda 三个参数。...,输入一组训练数据和测试数据,输出计算得到最小 RMSE 那组参数。...代码实现如下:   /**     * 输出最优参数方法:输入一组训练数据和测试数据,输出计算得到最小 RMSE 那组参数     *     * @param trainingDataRDD     ...(使用是向量点积公式)     *     * @param product1     * @param product2     * @return     */   def consinSim(product1

4.4K21

OAuth2.0认证解析

需要精确地设置成从客户端接收到值。 错误响应 如果终端用户拒绝了访问请求,或者由于除了缺少或无效重定向URI之外其它原因而导致请求失败, error_description 可选参数。...={redirect_uri} 参数说明 参数 必须 描述 client_id 是 必需参数。...它值必须是“authorization_code” code 是 必需参数。从授权服务器接收到授权码。 redirect_uri必需参数。在最初请求中使用重定向URI。...错误响应 如果终端用户拒绝了访问请求,或者由于除了缺少或无效重定向URI之外其它原因而导致请求失败, error 错误码 invalid_request 请求缺少某个必需参数,包含一个不支持参数参数值...错误响应 如果终端用户拒绝了访问请求,或者由于除了缺少或无效重定向URI之外其它原因而导致请求失败, error_description 可选参数

3.9K10

Flask(9)- 蓝图基本使用

news/tech/ IT 新闻版块 tech_news /products/car/ 汽车产品版块 car_products /products/baby/ 婴幼儿产品版块 baby_products...使用蓝图后,路由匹配流程 浏览器访问路径 /products/car Flask 框架在蓝图 news 和蓝图 products 中查找匹配该页面路径路由 发现在蓝图 products 中,存在和路径...:蓝图名称 第二个参数:导入蓝图名称 第三个参数:蓝图前缀,该蓝图下路由规则前缀都需要加上这个 """ blueprint = Blueprint('news', __name__, url_prefix...products.py,其中 news.py 实现新闻版块,products.py 实现产品版块 3、使用一个独立目录实现蓝图 在这种架构中,程序扩展性最好: 程序由主程序和多个蓝图构成 每个蓝图对应一个独立目录...:蓝图名称 第二个参数:导入蓝图名称 第三个参数:蓝图前缀,该蓝图下路由规则前缀都需要加上这个 """ blueprint = Blueprint('news', __name__, url_prefix

79820

RESTfulAPI接口设计规范与快速入门

# 获取所有产品清单 GET /products # 获取产品4信息 GET /products/4 # 更新产品4信息 PATCH(或)PUT /products/4 # 新建产品 POST.../AppName/1.0/products # 更新单个产品 PUT http://api.weiyigeek.top/AppName/1.0/products/1 # 删除单个产品 DELETE.../AppName/1.0/products/1/delete 过滤信息规范 描述: 如果API返回数量很多,服务器不可能都将它们返回给用户,此时 API 应该提供参数,过滤返回结果。...animal_type_id=1 # 参数设计允许存在冗余,即允许API路径和URL参数偶尔有重复。 比如,GET /zoos/ID/animals 与 GET /animals?...4.设置HTTP请求,通常包括 3 方面的注册路由、设置 Header、注册中间件 5.然后加载设置路由以及健康检查预警。

1.4K40
领券