开发者社区> yanbigfeg> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

【WebAPI No.1】创建简单的 .NETCore WebApi

简介: 介绍: 官方定义如下,强调两个关键点,即可以对接各种客户端(浏览器,移动设备),构建http服务的框架。Web API最重要的是可以构建面向各种客户端的服务。 core的WebAPI与ASP.NET WebAPI是有些区别的,现在使用的是控制器路由[Route("api/Menu")]和请求方式路由[HttpGet]、[HttpGet("{id}")]结合的 方式。
+关注继续查看

介绍:

官方定义如下,强调两个关键点,即可以对接各种客户端(浏览器,移动设备),构建http服务的框架。Web API最重要的是可以构建面向各种客户端的服务。

core的WebAPI与ASP.NET WebAPI是有些区别的,现在使用的是控制器路由[Route("api/Menu")]和请求方式路由[HttpGet]、[HttpGet("{id}")]结合的 方式。直接在控制器和Action上使用方法注释。没有ASP.NET WebAPI存在单独的配置路由规则类。先配置,然后进行注册后才可以使用。

Web API的主要功能:

1. 支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作

 通过不同的http动作表达不同的含义,这样就不需要暴露多个API来支持这些基本操作。

2. 请求的回复通过Http Status Code表达不同含义,并且客户端可以通过Accept header来与服务器协商格式,例如你希望服务器返回JSON格式还是XML格式。

3. 请求的回复格式支持 JSON,XML,并且可以扩展添加其他格式。

4. 原生支持OData。

5. 支持Self-host或者IIS host。

创建项目:

首先:打开vs选中新建项目- >选中.NET Core - >ASP.NET Core Web应用程序:

 

然后:在选择web应用程序,注意上面要选中.net Core 别选错了。在选择Web API

最后:看到一个新建好的项目结构:

 验证:最后打开基础网址看一下效果:

再修改网址路径:http://localhost:4833/api/values

基本介绍:

创建自己新的控制器:

路由的基本功能:

    控制器路由:

        [Route("api/Menu")]

    Action路由:

        1.根据HttpMethod路由 [HttpPut]

        2.根据Template模板路由[HttpGet("{id}")]

    Core WebAPI中返回数据处理,提供了更 多的选择:

        1.OKResult,OkObjectResult,返回状态为200

        注:用OkObjectResult 前台jquery自动解析为object对象,不需要进行反序列化处理

        2.ContentResult 返回字符串

        3.JsonResult 返回Json对象,前台不需要反序列化处理

        4.返回基础类型和引用类型 ,自动序列化,前台接收为object对象等

 请求的一点补充:

    get请求参数如果在路由中配置就不能使用?拼接直接使用/值形式;例如:

错误写法:http://localhost:4833/api/Test?id=5

正确写法:http://localhost:4833/api/Test/5

跨域处理:

Core WebAPI的项目中自带了跨域Cors的处理,不需要单独添加程序包。我们只需要在全局配置处配置就可以了。

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
            services.AddCors(options =>
            {
                options.AddPolicy("any", builder =>
                {
                    builder.AllowAnyOrigin() //允许任何来源的主机访问
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials();//指定处理cookie
                });
            });
        }
View Code

首先要引用命名空间:

using Microsoft.AspNetCore.Cors;

然后在使用的Action上面增加:[EnableCors("any")] 

        [HttpGet("{id}")]
        [EnableCors("any")]
        public string Get(int id)
        {
            return "这是带"+id+"的返回值";
        }

 注:也可以在控制器上使用,这样当前控制器所有方法都支持跨域

Cookie的访问:

    后台通过HttpContext上下文可以直接操作Cookie  :ControllerContext.HttpContext.Response.Cookies.Append("name", "内容");

     前台JQuery的ajax请求,需要携带withCredentials才会将cookie的值保存到客户端

传送门:

WebApi系列文章目录介绍

 

  

作者:YanBigFeg —— 颜秉锋

出处:http://www.cnblogs.com/yanbigfeg

本文版权归作者和博客园共有,欢迎转载,转载请标明出处。如果您觉得本篇博文对您有所收获,觉得小弟还算用心,请点击右下角的 [推荐],谢谢!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
让你的iOS应用程序支持运行JavaScript脚本:JavaScriptCore框架详解(一)
让你的iOS应用程序支持运行JavaScript脚本:JavaScriptCore框架详解
305 0
让你的iOS应用程序支持运行JavaScript脚本:JavaScriptCore框架详解(四)
让你的iOS应用程序支持运行JavaScript脚本:JavaScriptCore框架详解
72 0
【WebAPI】从零开始学会使用.NET Core WebAPI
介绍 以后会慢慢总结在项目使用中或者学习到的webAPI相关的知识,在这里做记录。 我会从最开始的如何创建WebAPI项目到项目的后续知识一点一点的开始讲述记录。 通过简单有效的方式,让我们能够快速的了解WebAPI,并且在学习后能够使用WebAPI。
2630 0
ASP.NET Core Web API 与 SSL
SSL 一直没有真正研究过SSL,不知道下面的理解是否正确。 SSL是Secure Sockets Layer的缩写,它用来保护服务器和客户端之前的通信。它是基于信任+加密的概念。 在介绍SSL的原理之前,首先介绍一下加密(Encryption)的概念。
1595 0
WebApi 中FromUri参数自动解析成实体的要求
条件一:类属性名称必须和参数名称相同(不分大小写) 条件二:API参数必须以[FromUri]来修饰(数组也需要添加,否则参数传递不了) 条件三:属性类型为“类”的,如果使用类名(导航属性在本类的名称,可以不是类的原名).
1105 0
Spring 一二事(9) - xml 形式的 AOP
AOP在spring中是非常重要的一个 在切面类中,有5种通知类型: aop:before  前置通知 aop:after-returning  后置通知 aop:after  最终通知 aop:after-throwing  异常通知 aop:around  环绕通知 1   ...
599 0
github上的Lua in Erlang
https://github.com/rvirding/luerl
669 0
在SQL SERVER中实现Split功能的函数,并在存储过程中使用
代码 CREATE FUNCTION dbo.SplitString(          @Expression NVARCHAR(4000), --要拆分的字符串          @Delimiter NVARCHAR(100), --拆分符号          @n INT --要得...
891 0
+关注
63
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载