Web API是需要接受参数的,譬如,通常用于创建数据的POST method需要接受输入数据,而用于GET method也需要接受一些可选参数,譬如:为了性能起见,控制返回数据的数量是至关重要的。

首先来看输入参数的几种形式:

  • /api1/{parameter1}/{parameter2}/…/{parametern}
  • /api1&{parameter1}=xxx&{parameter2}=xxx&…&{parametern}=xxx
  • /api1: 输入内容在Body中

有了以上理解,再来看ASP.NET Core 1.0如何实现。

  • 针对第一种输入参数,实现方法是在对应的Controller中添加如下的属性
[Route("api/[controller]")]
public class ValueController : Controller
{
[HttpGet("{parameter1}\{parameter2}")]
public IEnumerable<String> Get(String parameter1, String parameter2)
{
// Do the job!
}
...
}
  • 针对第二种输入参数(其实是可选参数),实现方法类似,只是不需要再HttpGet的属性中指定Route:
[Route("api/[controller]")]
public class ValueController : Controller
{
[HttpGet()]
public IEnumerable<String> Get(Int32? parameter1 = null, String parameter2 = "")
{
// Do the job!
}
...
}
  • 针对第三种输入参数,实现方法是通过FromBody的属性:
[Route("api/[controller]")]
public class ValueController : Controller
{
[HttpPost]
public IActionResult Post([FromBody]String cont)
{
// Do the job!
}
...
}

既然提到了FromBody属性,那么索性介绍一下另外一个FromUri。以下示例来自于ASP.NET官方文档。

一个简单的FromUri使用场景:

public class GeoPoint
{
public double Latitude { get; set; }
public double Longitude { get; set; }
} public ValuesController : ApiController
{
public HttpResponseMessage Get([FromUri] GeoPoint location) { ... }
}

是为之记。
Alva Chien
2016.6.24

ASP.NET Core 1.0: API的输入参数的更多相关文章

  1. asp.net core 2.0 api ajax跨域问题

    API配置: services.AddCors(options => { options.AddPolicy("any", builder => { builder.W ...

  2. ASP.NET Core 2.0 多应用实现Cookie共享

    前言 .NET Core 2.0 发布之后,在Authentication中间件部分,相关API有不少改动(官方文档),本文主要讲的就是实现应用Cookie共享,对Cookie中间件使用不了解的可以去 ...

  3. 从头编写 asp.net core 2.0 web api 基础框架 (4) EF配置

    第1部分:http://www.cnblogs.com/cgzl/p/7637250.html 第2部分:http://www.cnblogs.com/cgzl/p/7640077.html 第3部分 ...

  4. 【转载】从头编写 asp.net core 2.0 web api 基础框架 (4) EF配置

    Github源码地址:https://github.com/solenovex/Building-asp.net-core-2-web-api-starter-template-from-scratc ...

  5. 用VSCode开发一个asp.net core2.0+angular5项目(5): Angular5+asp.net core 2.0 web api文件上传

    第一部分: http://www.cnblogs.com/cgzl/p/8478993.html 第二部分: http://www.cnblogs.com/cgzl/p/8481825.html 第三 ...

  6. ASP.NET Core 3.0 WebApi中使用Swagger生成API文档简介

    参考地址,官网:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view ...

  7. 从 MVC 到使用 ASP.NET Core 6.0 的最小 API

    从 MVC 到使用 ASP.NET Core 6.0 的最小 API https://benfoster.io/blog/mvc-to-minimal-apis-aspnet-6/ 2007 年,随着 ...

  8. ASP.NET CORE 1.0 MVC API 文档用 SWASHBUCKLE SWAGGER实现

    from:https://damienbod.com/2015/12/13/asp-net-5-mvc-6-api-documentation-using-swagger/ 代码生成工具: https ...

  9. ASP.NET Core 1.0开发Web API程序

    .NET Core版本:1.0.0-rc2Visual Studio版本:Microsoft Visual Studio Community 2015 Update 2开发及运行平台:Windows ...

随机推荐

  1. HelloWin详解

    (注意:遇到程序在弄懂之后一定要自己去敲,一定要自己去敲,一定要自己去敲) (注意:遇到程序在弄懂之后一定要自己去敲,一定要自己去敲,一定要自己去敲) (注意:遇到程序在弄懂之后一定要自己去敲,一定要 ...

  2. cmd 获取当前登录的用户和远程连接的用户

    打开cmd  执行  quser 可以看到我有两个 会话 带>  是我当前的会话 rdp 是远程连接的会话   console 是本机操作  可以知道谁在连接你 状态是  唱片 就是未连接的意思 ...

  3. java学习6-java基础类库

    1.与用户互动 2.系统相关 3.常用类 4.日期.时间类

  4. 备战双 11!蚂蚁金服万级规模 K8s 集群管理系统如何设计?

    作者 | 蚂蚁金服技术专家 沧漠 关注『阿里巴巴云原生』公众号,回复关键词"1024",可获取本文 PPT. 前言 Kubernetes 以其超前的设计理念和优秀的技术架构,在容器 ...

  5. 百万年薪python之路 -- 迭代器

    3.1 可迭代对象 3.1.1 可迭代对象定义 **在python中,但凡内部含有 _ _ iter_ _方法的对象,都是可迭代对象**. 3.1.2 查看对象内部方法 该对象内部含有什么方法除了看源 ...

  6. textbox获取焦点选中内容

    前台: <TextBox VerticalAlignment="> <TextBox.Style> <Style TargetType="TextBo ...

  7. nsq (三) 消息传输的可靠性和持久化[一]

    上两篇帖子主要说了一下nsq的拓扑结构,如何进行故障处理和横向扩展,保证了客户端和服务端的长连接,连接保持了,就要传输数据了,nsq如何保证消息被订阅者消费,如何保证消息不丢失,就是今天要阐述的内容. ...

  8. kafka里的一些管理脚本

    kafka-server-start脚本 ------启动kafka server kafka-server-stop脚本 ------关闭kafka server kafka-topics脚本 -- ...

  9. 函数进阶(三) day14

    目录 昨日内容 迭代器 可迭代对象 迭代器对象 for循环原理 三元表达式 列表推导式 字典生成式 zip 生成器表达式 生成器 yield 递归 今日内容 匿名函数 内置方法 掌握 了解 异常处理 ...

  10. JdbcTemplate实现增删改查操作

    JdbcTemplate介绍 为了使 JDBC 更加易于使用,Spring 在 JDBCAPI 上定义了一个抽象层, 以此建立一个JDBC存取框架,Spring Boot Spring Data-JP ...