WebApi开发框架V3.0 - Hello World 接口实现
目录
开发流程
一、创建模型 (Model)
在 CSFramework.WebApi.Models 模块 新建一个 HelloWord类。
C# 全选
public class HelloWorld
{
public string Name { get; set; }
}
二、创建接口 (Interface)
在 CSFramework.WebApi.Interfaces 模块 新建一个 IHelloWord接口,作为业务逻辑层的接口。
C# 全选
public interface IHelloWorld
{
HelloWorld SayHello();
}
三、实现接口(创建Business业务层)
在 CSFramework.WebApi.Biz 模块 新建一个 HelloWorldBusiness类,实现 IHelloWord接口,以及依赖注入接口:ITransientDependency
C# 全选
/// <summary>
/// HelloWorld业务逻辑层,必须实现依赖注入接口
/// </summary>
public class HelloWorldBusiness : IHelloWorld, ITransientDependency
{
public HelloWorld SayHello()
{
return new HelloWorld
{
Name = "Hello! www.csframework.com"
};
}
}
四、新建控制器 (Controller)
在 CSFramework.WebApi 模块 新建一个 HelloWorld 控制器。
注意:HelloWorld后面必须加上Controller,完整名称是HelloWorldController。
控制器生成的默认代码,不可使用!
C# 全选
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace CSFramework.WebApi.Controllers.Demo
{
public class HelloWorldController : Controller
{
public IActionResult Index()
{
return View();
}
}
}
实现控制器
- 继承 _BaseController 基类
- 增加 [ApiController] 特性定义
- 增加 [Route] 路由特性定义
- 构造器实现业务逻辑层接口依赖注入
- 实现SayHello接口
参考代码 (WebApi框架控制器实现标准)
C# 全选
using CSFramework.WebApi.Interfaces.Demo;
using CSFramework.WebApi.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace CSFramework.WebApi.Controllers.Demo
{
[ApiController]
[Route("api/[controller]/[action]")]
public class HelloWorldController : _BaseController
{
IHelloWorld _business;
//依赖注入
public HelloWorldController(IHelloWorld business)
{
_business = business;
}
[AllowAnonymous]
[HttpGet]
public HelloWorld SayHello()
{
return _business.SayHello();
}
}
}
注:该接口使用HttpGet方式,并且允许匿名认证 [AllowAnonymous] 。
五、运行程序,使用IIS Express运行
IE输入URL地址
Swagger测试接口
六、实现 HttpPost 接口
6.1 接口扩展方法
C# 全选
public interface IHelloWorld
{
HelloWorld SayHello();
HelloWorld SayHello(HelloWorld input);
}
6.2 业务逻辑层扩展方法
C# 全选
using CSFramework.WebApi.Core.Interfaces;
using CSFramework.WebApi.Interfaces.Demo;
using CSFramework.WebApi.Models;
namespace CSFramework.WebApi.Biz._Demo
{
/// <summary>
/// HelloWorld业务逻辑层,必须实现依赖注入接口
/// </summary>
public class HelloWorldBusiness : IHelloWorld, ITransientDependency
{
public HelloWorld SayHello()
{
return new HelloWorld
{
Name = "Hello! www.csframework.com"
};
}
public HelloWorld SayHello(HelloWorld input)
{
return new HelloWorld
{
Name = "Hello!" + input.Name
};
}
}
}
6.3 控制器扩展方法
C# 全选
using CSFramework.WebApi.Interfaces.Demo;
using CSFramework.WebApi.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace CSFramework.WebApi.Controllers.Demo
{
[ApiController]
[Route("api/[controller]/[action]")]
public class HelloWorldController : _BaseController
{
IHelloWorld _business;
//依赖注入
public HelloWorldController(IHelloWorld business)
{
_business = business;
}
[AllowAnonymous]
[HttpGet]
public HelloWorld SayHello()
{
return _business.SayHello();
}
[AllowAnonymous]
[HttpPost]
public HelloWorld SayHelloByPost(HelloWorld input)
{
return _business.SayHello(input);
}
}
}
6.4 Swagger测试
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
WebApi-NETCore-V3 C/S框架网