第一步:创建项目
1.创建一个新的 ASP.NET Core Web API 项目
第二步:创建模型文件
1.在项目根目录下创建 Models 文件夹
2.然后创建 Models/OpenProductReportRequest.cs 文件,内容如下:
cs
复制代码
namespace AGVProductReportServer.Models
{
public class OpenProductReportRequest
{
public List<string> BoxesList { get; set; } = new List<string>();
public string AgvPoint { get; set; } = string.Empty;
}
}
cs
复制代码
namespace AGVProductReportServer.Models
{
public class OpenProductReportResponse
{
public int Code { get; set; }
public string Message { get; set; } = string.Empty;
public bool Result { get; set; }
public bool Success { get; set; }
}
}
第三步:创建控制器
1.创建 Controllers/OpenProductReportController.cs 文件
cs
复制代码
using AGVProductReportServer.Models;
using Microsoft.AspNetCore.Mvc;
namespace AGVProductReportServer.Controllers
{
[ApiController]
[Route("mes-standard-biz/mesProductReport")]
public class OpenProductReportController : ControllerBase
{
[HttpPost("openProductReport")]
public IActionResult OpenProductReport([FromBody] OpenProductReportRequest request)
{
// 检查请求是否为空
if (request == null ||
string.IsNullOrEmpty(request.AgvPoint) ||
request.BoxesList == null ||
request.BoxesList.Count == 0)
{
return BadRequest(new OpenProductReportResponse
{
Code = -1,
Message = "请求参数缺失或格式错误",
Success = false
});
}
// 模拟业务逻辑:验证箱码是否有效
var validBoxes = new HashSet<string>
{
"FERT-MB02H0M010004R84000002",
"FERT-MB02H0M010004R84000003"
};
foreach (var box in request.BoxesList)
{
if (!validBoxes.Contains(box))
{
return NotFound(new OpenProductReportResponse
{
Code = -1,
Message = "未查询到箱码信息!",
Success = false
});
}
}
// 全部有效,返回成功
return Ok(new OpenProductReportResponse
{
Code = 0,
Message = "",
Result = true,
Success = true
});
}
}
}
第四步:创建测试客户端
1.需要修改 Program.cs 文件,添加客户端测试功能。替换掉原来的 Program.cs 内容:
cs
复制代码
using AGVProductReportServer.Models;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
// 强制指定服务器运行在 HTTP 5000 端口
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.UseUrls("http://localhost:5000");
// 添加服务到容器
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
// 配置 HTTP 请求管道
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseAuthorization();
app.MapControllers();
Console.WriteLine("服务器启动,监听地址: http://localhost:5000");
Console.WriteLine("等待客户端连接...");
await app.RunAsync();
第五步:修改 Properties/launchSettings.json 文件
javascript
复制代码
{
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": false,
"applicationUrl": "http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}