如何创建一个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"
      }
    }
  }
}
相关推荐
g105655913914 分钟前
公有云_云运维服务
java·运维·服务器
well061227 分钟前
Linux粘滞位与Makefile机制深度解析
linux·运维·服务器
hzxpaipai38 分钟前
杭州企业官网怎么建设?从策划到上线的5步建站方法
运维·服务器·前端·网络
smartpi_ai1 小时前
通用脱机烧录器为什么烧不进 CI-03?下载协议的门槛、免唤醒 10 条的建议值属性
服务器·网络·ci/cd
2501_937860942 小时前
中篇:TCP 为什么可靠又高效?滑动窗口、流量控制、拥塞控制与粘包全解析
服务器·网络·tcp/ip
lzhdim2 小时前
C#不为人知的10个魔法特性:资深开发者也会震惊的底层奥秘
java·前端·javascript·算法·c#
QYRdata3 小时前
2026-2032年图形处理云服务器CAGR预计达18.7%
运维·服务器·服务发现
极光通讯4 小时前
呆滞库存回收定价逻辑:如何评估DDR4内存和SATA SSD的回收价值
服务器·ssd
技术人生0014 小时前
VMware Workstation 安装 Ubuntu 24.04 LTS 完整教程
运维·服务器·ubuntu
YumiProxy4 小时前
动态IP冲突排查实战:从ARP检测到DHCP地址池的完整链路
服务器·网络·网络协议·tcp/ip·ip