【易飞】易飞ERP全能WebAPI发布:全单据CRUD与审核流操作,RESTful风格覆盖所有版本 随着企业发展作为企业信息化的基座ERP系统承载着和周边系统进行异构对接如WMS、QMS、SRM、PLM、MES、CRM、APS、OA等系统对接。现在大部分新版本ERP系统大都提供了免费或者收费的标准接口。作为一款经典的易飞ERP系统仍然有着广泛的客户群体提供一款符合现代风格的接口显得的尤为重要。同时也可以作为内部自研异构系统接口使用。一、ERP系统接口的应用场景ERP接口主要分为两大类内部系统集成接口和外部生态协同接口。详见https://blog.csdn.net/david_520042/article/details/162268946?spm1001.2014.3001.5501二、系统更新日志详见https://blog.csdn.net/david_520042/article/details/162268818?spm1001.2014.3001.5501三、主要功能单据查询读取新增更新删除审核撤审作废单据性质✔✗✗✗✗✗✗✗工厂信息✔✔✔✔✗✗✗✗仓库信息✔✔✔✔✗✗✗✗工作中心✔✔✔✔✗✗✗✗部门信息✔✔✗✗✗✗✗✗币种信息✔✔✗✗✗✗✗✗假日表✔✔✗✗✗✗✗✗职务类别✔✔✗✗✗✗✗✗员工信息✔✗✗✗✗✗✗✗公司信息✔✗✗✗✗✗✗✗付款条件✔✔✔✔✗✗✗✗项目信息✔✔✔✔✗✗✗✗供应商信息✔✔✔✔✗✗✗✗询价单✔✔✔✔✔✔✔✔供应商料件价格✔✔✔✔✔✗✗✗验退件退回✔✔✔✔✔✗✗✗核价单✔✔✔✔✔✔✔✔请购单✔✔✔✔✔✔✔✔采购单✔✔✔✔✔✔✔✔采购变更单✔✔✔✔✔✔✔✔进货单✔✔✔✔✔✔✔✔退货单✔✔✔✔✔✔✔✔进货单验收✗✗✗✗✗✔✔✗到货单✔✔✔✔✔✔✔✔客户信息✔✔✔✔✗✗✗✗客户商品价格✔✔✔✔✔✗✗✗销售预测✔✔✔✔✔✗✗✗报价单✔✔✔✔✔✔✔✔销售订单✔✔✔✔✔✔✔✔订单变更单✔✔✔✔✗✔✔✔销货单✔✔✔✔✔✔✔✔销退单✔✔✔✔✔✔✔✔出货通知单✔✔✔✔✔✔✔✔客户品号✔✔✔✔✔✗✗✗品号类别✔✔✔✔✗✗✗✗品号信息✔✔✔✔✔✗✗✗品号信息✔✔✗✗✗✗✗✗库存交易单✔✔✔✔✔✔✔✔调拨单✔✔✔✔✔✔✔✔库存交易信息✔✔✗✗✗✗✗✗品号月档✔✔✗✗✗✗✗✗报废单✔✔✔✔✔✔✔✔销毁单✔✔✔✔✔✔✔✔借出\入单✔✔✔✔✔✔✔✔借出\入归还单✔✔✔✔✔✔✔✔取替代料✔✔✔✔✔✗✗✗BOM信息✔✔✗✗✗✗✗✗工程品号✔✔✔✔✔✗✗✗录入BOM✔✔✔✔✔✔✔✔BOM变更单✔✔✔✔✔✔✔✔录入EBOM✔✔✔✔✔✔✔✔EBOM变更单✔✔✔✔✔✔✔✔组合单✔✔✔✔✔✔✔✔拆解单✔✔✔✔✔✔✔✔工单拆分✔✔✗✗✗✗✗✗工单✔✔✔✔✔✔✔✔领料单✔✔✔✔✔✔✔✔退料单✔✔✔✔✔✔✔✔生产入库单✔✔✔✔✔✔✔✔委外进货单✔✔✔✔✔✔✔✔委外退货单✔✔✔✔✔✔✔✔工单变更单✗✗✗✗✗✔✔✔班组成员✔✔✔✔✔✗✗✗销售发票✔✔✔✔✔✔✔✔收款单✔✔✔✔✔✔✔✔其他收款单✔✔✔✔✔✔✔✔应收退款单✔✔✔✔✔✔✔✔预收款单✔✔✔✔✔✔✔✔采购发票✔✔✔✔✔✔✔✔付款单✔✔✔✔✔✔✔✔费用发票✔✔✔✔✔✔✔✔其他应付单✔✔✔✔✔✔✔✔应付退款单✔✔✔✔✔✔✔✔预付款单✔✔✔✔✔✔✔✔会计科目✔✔✗✗✗✗✗✗会计凭证✔✔✔✔✔✔✔✔抽查基础✔✔✔✔✗✗✗✗品管类别✔✔✔✔✔✗✗✗检验项目✔✔✔✔✔✗✗✗品号检验项目✔✔✔✔✔✗✗✗不良原因✔✔✔✔✔✗✗✗计量抽查基础✔✔✔✔✔✗✗✗进货检验单✔✔✗✗✗✗✗✗委外进货检验单✔✔✗✗✗✗✗✗生产入库检验单✔✔✗✗✗✗✗✗销退检验单✔✔✗✗✗✗✗✗到货检验单✔✔✗✗✗✗✗✗委外到货检验单✔✔✗✗✗✗✗✗委外价格 ✔✔✔✔✔✗✗✗委外核价单✔✔✔✔✔✔✔✔委外进货单验收✗✗✗✗✗✔✔✗委外到货单✔✔✔✔✔✔✔✔委外验退件退回✔✔✔✔✔✗✗✗报工单✔✔✔✔✔✔✔✔转移单✔✔✔✔✔✔✔✔四、本接口特性特性实现方式设计清晰RESTful版本控制Swagger文档结构良好分层架构关注点分离功能丰富涵盖大部分业务接口580格式统一统一的响应包装和错误处理实务管理删除、新增、更新支持事务管理安全可靠认证、授权、CROS、输入验证输入清理-参数化,速率限制高效性能异步缓存分页易于维护清晰的命名日志测试依赖注入可扩展使用DTO和AuoMapper,解耦各层项目名称 易飞ERP Web API技术框架 .NET 10.0 ASP.NET Core架构模式 分层架构 多模块设计项目规模 6个子项目100控制器文件✅ 项目优势1. 技术架构优势现代化技术栈 采用.NET 10.0最新框架享受最新性能优化和安全特性分层架构清晰 Controller → Service → Interface → Entity 分层明确职责分离多数据库支持 同时支持SQL Server和SQLite适应不同部署环境多账套设计 通过工厂模式实现多租户数据库上下文管理2. 功能完整性业务模块丰富 覆盖采购(PUR)、库存(INV)、销售(COP)、生产(MOC)、财务(ACP)、质量(QMS)、工单(SFC)等ERP核心模块认证授权完善 JWT认证 许可证管理 IP白名单 API权限控制性能优化措施 Redis分布式缓存 内存缓存 缓存预热 输出缓存安全保障机制 限流保护 异常处理 参数验证 SQL注入防护3. 代码质量注释规范 完整的XML文档注释Swagger自动生成API文档异常处理 全局异常处理中间件分类处理不同类型异常数据验证 多层验证机制模型验证 业务逻辑验证 数据完整性验证依赖注入 全面使用DI容器松耦合设计4. 开发体验开发工具支持 完整的Swagger UI便于接口测试和文档查看日志系统 Serilog结构化日志分级记录Info/Warning/Error/Fatal健康检查 内置健康检查端点便于监控自动化映射 AutoMapper对象映射减少手动转换代码五、接口文档德仔易飞WebApi六、审核类型1.常规审核单别单号.jpeg#pic_center 300x400)易飞WEBAPI接口2.特殊模块审核:进货验收(单别单号行号 )进货验收变更单版本3.变更单审核单别单号版本4. 常规单据作废5. 变更单作废6.单号不存在或单别单号系统已存在则自动生成符合单据性质设定的单据号。7. 单身校验逻辑品号不存在或品号未核准状态单据性质设定核对来源单。采购变更单订单数量校验若采购订单已存在已交货数量变更后的订单数量不允许小于已交货数量8.查询支持分页和多种维度查询特别是支持返回指定列。9.多维度校验确保数据完整性和准确性校验数据合规供应商、仓库、客户、品号、工作中心、付款条件等税率、汇率、发票种类、品号类型主档和明细档都存在自定义属性异常。区分主档和明细档10.压力测试每间隔1ms请求一次连续请求500次通过率100%失败率0%11.JWT安全访问(可选)参考文档1【JWT】Asp.Net Core中JWT刷新Token解决方案参考文档2[WebApi]ASP.Net Core 中使用JWT认证3.1版本5.0也可以使用七. 部署文档YiFeiWebApi接口部署文档八. X-API-License 接口授权请求头部携带X-API-License 生成的授权码已授权未授权未携带携带空值携带错误的LisenceKey九. 接口请求示例有些朋友希望有个调用的示例测试效果html!DOCTYPEhtmlhtmllangzh-CNheadmetacharsetUTF-8metanameviewportcontentwidthdevice-width, initial-scale1.0titleWebAPI 请求示例/titlescriptsrchttps://code.jquery.com/jquery-3.6.0.min.js/scriptstylebody{font-family:Arial,sans-serif;max-width:800px;margin:0 auto;padding:20px;}button{padding:10px 15px;background-color:#4CAF50;color:white;border:none;border-radius:4px;cursor:pointer;}button:hover{background-color:#45a049;}#response{margin-top:20px;padding:15px;border:1px solid #ddd;border-radius:4px;background-color:#f9f9f9;white-space:pre-wrap;}/style/headbodyh1WebAPI 请求示例/h1p点击按钮发送请求到 WebAPI 接口/pbuttonidsendRequest发送请求/buttonh2响应结果/h2dividresponse等待发送请求.../divscript$(document).ready(function(){$(#sendRequest).click(function(){// 准备请求数据constrequestData{std_data:{parameter:{page_no:41,conditions:{fields:[{value:1027,operator:,field_name:doc_type_no}],operator:AND},use_has_next:false,page_size:65}}};// 显示正在发送请求$(#response).text(正在发送请求...);console.log(正在发送请求...,requestData);// 发送 AJAX 请求$.ajax({url:http://localhost:48557/api/Cmsi01/Query?companyZE,type:POST,contentType:application/json,data:JSON.stringify(requestData),headers:{X-API-License:XXXXYYYY,X-API-CompanyId:001},success:function(response){// 请求成功显示响应数据constformattedResponseJSON.stringify(response,null,2);$(#response).text(formattedResponse);// 输出到控制台console.log(请求成功响应数据:);console.log(response);console.log(格式化后的响应数据:);console.log(formattedResponse);},error:function(xhr,status,error){// 请求失败显示错误信息leterrorMessage请求失败:\n;errorMessage状态: status\n;errorMessage错误: error\n;if(xhr.responseText){try{consterrorResponseJSON.parse(xhr.responseText);errorMessage详细信息: JSON.stringify(errorResponse,null,2);}catch(e){errorMessage响应文本: xhr.responseText;}}$(#response).text(errorMessage);// 输出错误到控制台console.error(请求失败:);console.error(状态:,status);console.error(错误:,error);console.error(完整错误对象:,xhr);}});});});/script/body/html十、 常见问题与故障排除认证失败 (401) 检查凭证有效性、过期时间、Header格式。参数错误 (400) 检查URL路径、查询参数、请求体JSON格式、字段名拼写、数据类型、必填项。资源未找到 (404) 检查URL路径是否正确资源ID是否存在。服务器错误 (5xx) 联系易飞系统管理员检查服务器日志。性能瓶颈 分析是网络问题、客户端问题还是易飞API服务器/数据库压力。数据不一致 检查接口调用逻辑事务性考虑、数据同步时机。十一、支持颗粒度到单接口的授权本接口支持细化到单一接口的灵活授权为用户提供更多选择十二、关于服务技术赋能服务贴心。快速响应只为您的绝对满意。我们不止解决问题更致力于成就您的成功。7x24小时在线的专业力量您的可靠技术后盾。高效稳定运维无忧极致体验。我们提供从咨询、部署到培训、优化的一站式专业服务