使用控制台应用程序创建WEBAPI自托管程序
2024-08-02
70
前言
创建 .NET ASP的WEBAPI可以选择WEBAPI项目类型,但需要使用IIS托管,有些情况下,只想做简单的WEB API服务,也有办法可以使用Console应用程序创建WEBAPI,在提到控制台应用程序,很多人会怀疑服务的URL是如何通过生成的可执行文件(.EXE)托管的?下面,我们将使用Owin,以自托管方式创建WEBAPI应用程序(RESTfull)。
实现过程
新建项目
在Visual C#中选择控制台应用程序类型:“Console application”
安装 nuget 包Owin和Cors
-
在工程上右键“管理Nuget程序包”,搜索“Microsoft.AspNet.WebApi.OwinSelfHost”执行安装:
-
搜索“Microsoft.AspNet.WebApi.Cors”执行安装
添加Startup.cs
工程中新建源文件Startup.cs,参考源码如下:
using System;
using Owin;
using System.Web.Http;
using System.Net.Http;
namespace firstMicroService
{
public class Startup
{
public void Configuration(IAppBuilder appBuilder)
{
HttpConfiguration CONFIG = new HttpConfiguration();
CONFIG.EnableCors();
CONFIG.Routes.MapHttpRoute(
name: createUserApi,
routeTemplate: api/{controller}/{id},
defaults: new { id = RouteParameter.Optional }
);
appBuilder.UseWebApi(CONFIG);
}
}
}
创建Controller
创建一个名为Controller类,类名为EmployeeController源文件为EmployeeController.cs,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Collections;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.Http.Cors;
namespace firstMicroService
{
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public string Salary { get; set; }
}
[EnableCors(origins:*, headers:*, methods:*)]
public class EmployeeController : ApiController
{
Employee[] employees = new Employee[]
{
new Employee{Id=0,Name=Morris,Salary=151110},
new Employee{Id=1,Name=John, Salary=120000},
new Employee{Id=2,Name=Chris,Salary=140000},
new Employee{Id=3,Name=Siraj, Salary=90000}
};
public IEnumerableEmployee Get()
{
return employees.ToList();
}
public Employee Get(int Id)
{
try
{
return employees[Id];
}
catch (Exception)
{
return new Employee();
}
}
}
}
修改Program.cs
修改Program.cs的代码如下:
using Microsoft.Owin.Hosting;
using System;
namespace firstMicroService
{
class Program
{
static void Main(string[] args)
{
string domainAddress = http://20.201.36.49/;
using (WebApp.Start(url: domainAddress))
{
Console.WriteLine(Service Hosted + domainAddress);
System.Threading.Thread.Sleep(-1);
}
}
}
}
修改app.config
修改的内容如下:
configuration
appSettings
add key=owin:AutomaticAppStartup value=false /
/appSettings
...
/configuration
运行程序
程序启动后,保持控制台窗口开启,如下图:
测试WEBAPI
服务中实现了一个GET方法,调用格式如下:
{服务器地址}/{api}/{Controller名称}/
这里,我们用POSTMAN测试WEBAPI,测试访问地址:
http://20.201.36.49/api/Employee/1
如下图所示:
赞一波!3
相关文章
- 【说站】java程序编好了怎么运行
- 【说站】java程序怎么运行
- 【说站】python程序的执行原理
- WebApi中使用OutPutCache Strathweb.CacheOutput.WebApi2使用方法
- 【说站】python 如何开发应用程序
- .net core webapi RateLimit接口防刷
- 10个技巧优化PHP程序Laravel 5框架
- jwt 小程序接口鉴权 【firebase 6.x】
- 微信小程序用户隐私保护协议填写范本
- 小程序中商家入驻提醒、新订单提醒
- 微信小程序中的支付宝支付
- uniapp 微信小程序 控制台警告和错误处理
- 微信小程序内容安全检测(敏感词、敏感图)
- 微信小程序订阅消息
- 小程序客服会话
- 获取用户授权的手机号【微信小程序】
- EasyWechat 4.x 微信小程序订阅消息
- 小程序测试号、公众号测试号
- EasyWechat 4.x 微信小程序企业付款到零钱
- EasyWechat 3.x 小程序客服消息自动回复
文章评论
评论问答