如何创建一个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"
      }
    }
  }
}
相关推荐
沐芊屿3 小时前
华为交换机配置M-LAG
服务器·网络·华为
枷锁—sha3 小时前
【SRC】越权漏洞检测
运维·服务器·网络·安全·网络安全·系统安全
UP_Continue3 小时前
Linux--进程控制
linux·运维·服务器
喵叔哟4 小时前
02-CSharp基础语法快速入门
服务器
人工智能AI技术5 小时前
【C#程序员入门AI】本地大模型落地:用Ollama+C#在本地运行Llama 3/Phi-3,无需云端
人工智能·c#
AI逐月5 小时前
tmux 常用命令总结:从入门到稳定使用的一篇实战博客
linux·服务器·ssh·php
想逃离铁厂的老铁5 小时前
Day55 >> 并查集理论基础 + 107、寻找存在的路线
java·服务器
舰长1156 小时前
linux 实现文件共享的实现方式比较
linux·服务器·网络
路由侠内网穿透.7 小时前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居