如何创建一个WebApi服务端

第一步:创建项目

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"
      }
    }
  }
}
相关推荐
小满Autumn3 小时前
log4net 日志框架 — 从配置到实战速查手册
笔记·c#·.net·wpf·上位机·log4net
鹤落晴春7 小时前
RH124问答3:从命令行管理文件
linux·运维·服务器
火山上的企鹅8 小时前
Codex实战:APP远程升级服务搭建(三)后台管理页面(APK 上传、版本管理、多应用页签)
服务器·网络·数据库·oracle·qgc
JaydenAI8 小时前
[对比学习LangChain和MAF-07]如何引入人机交互的审批流程
python·ai·langchain·c#·agent·hitl·maf
❀搜不到8 小时前
远程服务器codex使用本地cc-switch的deepseek api
运维·服务器
袁小皮皮不皮9 小时前
3.HCIP OSPF补充知识(优化版)
服务器·网络·数据库·网络协议·智能路由器
北域码匠9 小时前
SHA-1算法:安全哈希原理与应用解析
算法·c#·哈希算法
袁小皮皮不皮10 小时前
1.HCIP BFD 学习笔记(优化版)
服务器·网络·笔记·网络协议·学习·智能路由器·ip
123的故事10 小时前
工具分享(7)-多Excel文件内容查询工具
c#·excel·实用工具
dxxt_yy11 小时前
千兆光/电口+OTDR一体——成都鼎讯 SZT-1000A 千兆以太网测试仪助力风电能源光缆管理
运维·服务器·能源