Popular blog tags

第一章 项目结构设计

1.1.1.1 ASP.NET Core Web API Actual combat series(2)-ASP.NET Core Web API Project Structure

 

 

第二章 客户端和Web API 服务器的交互

1.约定请求参数的传递格式

1.1 前台有几种参数的传递格式,前台和后台需进行约定

1.2 后台设置接受参数的格式,否则路由匹配不到会发生404错误。

 

2.约定返回内容的数据格式

json

xml

text

3.约定返回内容字段名称的格式

3.1 大小写转换

 

 

5.约定api的版本号

 

 

RestFul WebApi 数据交换说明  

(一)服务器端返回的数据格式要指定

        客户端和服务器端的数据交换格式需要某种约定 响应提要设置为返回json格式的数据

(二)字段信息大小写格式约定 驼峰命名法

(三)传输协议约定 messagepack

(四)加密格式约定 

 

第三章 Web Api 授权

4.约定请求的合法性

cqrs

  

  一、创建Web ApI

(一)配置端口号

x:\x\x.WebApi\Properties\launchSettings.json

"applicationUrl": "http://localhost:7001/"

(二)配置 控制台显示信息

x:\x.WebApi\appsettings.json

{

"Logging":

{

"IncludeScopes": false,

"Debug":

{

"LogLevel":

{

"Default": "Information"

}

},

"Console":

{

"LogLevel":

{

"Default": "Information"

}

}

}

}

(三)配置同源策略

1.在startup.cs 配置两种同源策略

public void ConfigureServices(IServiceCollection services)

{

services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>(); //配置跨域处理,添加 CORS 策略: services.AddCors(options => {

options.AddPolicy("any",

builder => {

builder.AllowAnyOrigin() //允许任何来源的主机访问 .AllowAnyMethod() .AllowAnyHeader(); // .AllowCredentials();//指定处理cookie }); options.AddPolicy("AllowSameDomain", builder => { builder.WithOrigins(

"http://www.iaspnetcore.com",

"https://q.iaspnetcore.com",

"https://zzk.iaspnetcore.com",

"https://job.iaspnetcore.com" )

.AllowAnyMethod()

.AllowAnyHeader();

// .AllowCredentials();

//指定处理cookie

});

});

2.在控制器中启用其中一种同源策略

namespace x.WebApi.v1.Controllers

{

///

/// 获取信息 ///

[Route("v1/[controller]")]

[EnableCors("any")]

public class GetStockInfoController : Controller

{

....

}

二、带版本号的Web Api

三、生成Web Api文档

四、Web Api 授权

五、web Api 优化

使用 aspnet.mvc.core     符合REST设计风格的Web API称为RESTful API。它从以下三个方面资源进行定义:

直观简短的资源地址:URI,比如:http://example.com/resources/。

传输的资源:Web服务接受与返回的互联网媒体类型,比如:JSON,XML,YAML等。对资源的操作:Web服务在该资源上所支持的一系列请求方法(比如:POST,GET,PUT或DELETE)。   PUT和DELETE方法是幂等方法。GET方法是安全方法(不会对服务器端有修改,因此当然也是幂等的)。 不像基于SOAP的Web服务,RESTful Web服务并没有“正式”的标准。这是因为REST是一种架构,而SOAP只是一个协议。虽然REST不是一个标准,但大部分RESTful Web服务实现会使用HTTP、URI、JSON和XML等各种标准。 .

 

blazor+web api

1.定义控制器路由

  /// </summary>
    [Route("v1/[controller]")]
    [ApiController]
   // [EnableCors("any")]
    public class GetStockCwDataController : BaseAPIController
    {

2.定义控制中方法路由

 /// <returns></returns>
        [HttpGet("GetCwDataInfo")]
        public IEnumerable<BaseData> Get()
        {

3.客户端调用

v1/控制器名称/方法路由名称

@code {
    Stockso.Core.Domain.Stocks.BaseData[] forecasts;

    protected override async Task OnInitializedAsync()
    {
        forecasts = await Http.GetJsonAsync<Stockso.Core.Domain.Stocks.BaseData[]>(GlobalHelper.BaseUrl + "/v1/GetStockCwData/GetCwDataInfo");