MagicCode.MagicApi
1.2.0
See the version list below for details.
dotnet add package MagicCode.MagicApi --version 1.2.0
NuGet\Install-Package MagicCode.MagicApi -Version 1.2.0
<PackageReference Include="MagicCode.MagicApi" Version="1.2.0" />
<PackageVersion Include="MagicCode.MagicApi" Version="1.2.0" />
<PackageReference Include="MagicCode.MagicApi" />
paket add MagicCode.MagicApi --version 1.2.0
#r "nuget: MagicCode.MagicApi, 1.2.0"
#:package MagicCode.MagicApi@1.2.0
#addin nuget:?package=MagicCode.MagicApi&version=1.2.0
#tool nuget:?package=MagicCode.MagicApi&version=1.2.0
说明
MagicCode MagicApi is a dynamic webapi middleware for .net core,and it has added SwaggerGen by default.
use MagicApi,you can focus on logic design without considering how to configure the web api verbs or routes just by inherit the imagiccode to the service class or set the [MagicApi] to the service class 魔码MagicApi是.net core的动态WebApi包,默认已添加SwaggerGen。 使用魔码MagicApi,你可以关注于逻辑的实现,而无需考虑如何配置Webapi的请求方法、路由模板,所需要做的仅仅是服务继承IMagicApi或者给服务添加MagicApi特性。
约定
控制器名自动去除以ApplicationService(s),AppService(s)结尾的内容,例如:WechatAppService 得出的是wechat
方法约定:
1、谓词:
| 谓词 | 方法名开始词 |
|---|---|
| GET | get |
| POST | post,create,add,insert |
| PUT | put,update,save |
| DELETE | delete,remove |
| PATCH | patch |
2、路由:
方法名剔除上方开始词及Async等关键词后剩余部分
路由约定:
路由模板为“api/控制名/方法名/参数”,方法名如果等于谓词约定中的开始词则模板为:“api/控制名/参数”
使用
包安装
Install-Package MagicCode.MagicApi -Version 1.0.0
引用
services.AddMvc()
.AddMagicApi()
.AddMagicfulResult() //可选,使用RESTful风格的Api结果
;
服务定义:
public class HelloService : IMagicApi
{
public string Get(){
return "hello";
}
}
或者
[MagicApi]
public class HelloService
{
public string Get(){
return "hello";
}
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.1 is compatible. |
-
.NETCoreApp 3.1
- MagicCode.MagicSir.Extensions (>= 1.0.3)
- Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 3.1.32)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.0)
- Swashbuckle.AspNetCore.SwaggerGen (>= 7.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.