Hello World接口实现


webapi框架v3开发教程-开发框架文库

开发流程

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 控制器。

Hello World接口实现

 

Hello World接口实现

 

Hello World接口实现

 

注意: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();
        }
    }
}

 

实现控制器

Hello World接口实现

  • 继承 _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地址

Hello World接口实现

Swagger测试接口

Hello World接口实现

 

 

六、实现 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测试

 

Hello World接口实现

 

Hello World接口实现

 

 

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
评论列表

发表评论

评论内容
昵称:
关联文章

Hello World接口实现
Hello World接口实现
C#实现接口的两种方式:显示实现和隐式实现接口
C#接口中多态的实现
C#植入友商网在线服务并实现同步用户注册接口实现
平台建立WCF服务操作指引、三层源码+桥接接口实现
基于Web前端用户调用CSFramework.WebApi服务端登录登出接口实现
WebApi接口使用HttpGet方式实现接受实体类参数(原创)
CSFramework.WebApi时钟定时作业异步处理程序(IThreadHandler接口)实现
Web端使用VUE调用WebApi接口实现用户登录及采用Token方式数据交互
C#仿QQ聊天程序v1.0(IConnectionList接口实现)
开发框架旗舰版:数据库日志DBLog类实现ILogUserOperate接口设计
Winform调用WebApi接口实现增删改查CRUD实例源码
[原创]C#植入友商网在线服务并实现同步用户注册接口(三)
[原创]C#植入友商网在线服务并实现同步用户注册接口(一)
C# interface:定义接口
C#实现.Net Remoting服务端与客户端通信
接口和抽象类的区别
无线监控系统之二-------C#实现
C#.NET 6 实现全局异常处理