# JESAI.DynamicWebApi **Repository Path**: Jesai/JESAI.DynamicWebApi ## Basic Information - **Project Name**: JESAI.DynamicWebApi - **Description**: 此类库是基于netcore 3.1.主要是把一些服务动态创建WebApi - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 18 - **Forks**: 9 - **Created**: 2020-02-17 - **Last Updated**: 2024-05-26 ## Categories & Tags **Categories**: api-gateway **Tags**: None ## README # JESAI.DynamicWebApi [![Latest version](https://img.shields.io/nuget/v/JESAI.DynamicWebApi.svg)](https://www.nuget.org/packages/JESAI.DynamicWebApi/) #### 介绍 此类库是基于netcore 3.1.主要是把一些服务动态创建WebApi。当前的想法是打算后续做一个数据库配置相关的。类库是从ABP分离出来。ABP的代码太重,俨然一个全家桶,想单独拿轮子出来装到自己的车上,还是比较麻烦。特此把他单独分离出来,不受ABP依赖。 #### 安装教程 **Nuget** Install-Package JESAI.DynamicWebApi 或者在nuget管理器中搜索安装 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0217/234520_8037ef9d_370556.png "QQ图片20200217234340.png") #### 使用说明 **startup配置** `services.AddDynamicWebApi(this.GetType().Assembly);` ![输入图片说明](https://images.gitee.com/uploads/images/2020/0217/231337_c80f095b_370556.png "QQ图片20200217231323.png") **代码实现** 实现接口IDynamicWebAPiService 标注特性DynamicWebAPi ``` using JESAI.DynamicWebApi.Attributes; using JESAI.DynamicWebApi.Demo.Dtos; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace JESAI.DynamicWebApi.Demo.Dynamic { [DynamicWebApi] public class TestAppService: IDynamicWebApiService { private static readonly Dictionary Apples = new Dictionary() { [1] = "Big Apple", [2] = "Small Apple" }; /// /// Get An Apple. /// /// /// [HttpGet("{id:int}")] public string Get(int id) { if (Apples.ContainsKey(id)) { return Apples[id]; } else { return "No Apple!"; } } /// /// Get All Apple Async. /// /// public IEnumerable GetAllAsync() { return Apples.Values; } /// /// Get All Apple. /// /// public IEnumerable Get() { return Apples.Values; } /// /// Get All Apple. /// /// public IEnumerable GetBigApple() { return Apples.Values; } public void Update(UpdateAppleDto dto) { if (Apples.ContainsKey(dto.Id)) { Apples[dto.Id] = dto.Name; } } /// /// Delete Apple /// /// Apple Id [HttpDelete("{id:int}")] public void Delete(int id) { if (Apples.ContainsKey(id)) { Apples.Remove(id); } } } } ``` #### 参与贡献 ####效果展示 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0217/232818_2c507590_370556.png "QQ图片20200217232643.png") ![输入图片说明](https://images.gitee.com/uploads/images/2020/0217/232946_9ec98375_370556.png "QQ图片20200217232933.png")