当前位置: 首页 > news >正文

泛微e9开发 编写前端请求后端接口方法以及编写后端接口

泛微e9开发 前端请求后端接口以及后端发布接口

前端请求后端接口

前端发起get请求

fetch('/api/youpath', {method: 'GET',  // 默认 GET 方法,可以省略headers: {'Content-Type': 'application/json',  // 通常 GET 请求无需指定 body,Content-Type 不太重要},
}).then(response => response.json()).then(data => console.log(data)).catch(error => console.error('Error:', error));

前端发起post请求

fetch('/api/youpath', {method: 'POST',  // 指定请求方法为 POSTheaders: {'Content-Type': 'application/json',  // 指定请求体格式为 JSON},body: JSON.stringify({  // 将 JavaScript 对象转为 JSON 字符串name: 'John Doe',age: 30}),
}).then(response => response.json())  // 解析 JSON 响应.then(data => console.log(data))  // 处理响应数据.catch(error => console.error('Error:', error));  // 错误处理

后端发布接口

首先这个后端接口的路径必须是在com/api这个目录的下面!!!

get类型的接口

package com.api.customization.kq.web;import com.alibaba.fastjson.JSON;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import java.util.HashMap;@Path("/customization/hrm/kq")
public class CardReplacementAction {@GET@Path("/card/getNumber")@Produces(MediaType.APPLICATION_JSON)public String intervene(@QueryParam("userid")int userid, @QueryParam("date")String date) {BaseBean baseBean = new BaseBean();HashMap<String, Object> result = new HashMap<>();// 接受参数调用方法RecordSet recordSet = new RecordSet();String sql = "select * from formtable_main_26 where sqr = "+userid+" and sqrq like '"+date.substring(0, 7)+"%'";recordSet.executeQuery(sql);try {result.put("number", recordSet.getArray().size());}catch (Exception e) {baseBean.writeLog("==lzl==error:"+e.getMessage());}return JSON.toJSONString(result);}
}

post 类型的接口

方法一:通过从request对象中读取参数值

@POST
@Path("/getSomethingList")
@Produces(MediaType.TEXT_PLAIN)
public String List(@Context HttpServletRequest request, @Context HttpServletResponse response) {Map<String, Object> apidatas = new HashMap<String, Object>();String requestname = Util.null2String(request.getParameter("requestname"));String workflowid = Util.null2String(request.getParameter("workflowid"));apidatas.put("status", "1");return JSONObject.toJSONString(apidatas);
}

方法二:用类接收参数

import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;// 定义路径
@Path("/users")
public class UserResource {// 接收 POST 请求@POST@Consumes(MediaType.APPLICATION_JSON)  // 接收 JSON 数据@Produces(MediaType.APPLICATION_JSON)  // 返回 JSON 数据public Response createUser(User user) {// 这里,JAX-RS 自动将 JSON 请求体解析为 User 对象// 打印接收到的用户信息System.out.println("Received user: " + user.getName() + ", " + user.getAge());// 返回成功响应,并返回用户对象return Response.status(201)  // HTTP 201 状态码:资源已创建.entity(user)  // 将用户对象作为响应返回.build();}
}

注意事项

  • 首先接口必须发布在com.api包下
  • 前端访问后端接口路径的时候需要在你编写的接口路径前加上/api比如访问上面的post接口就得访问/api/users
http://www.lryc.cn/news/495154.html

相关文章:

  • Linux —— 《线程控制》
  • 基于HTML+CSS的房地产销售网站设计与实现
  • 操作系统 | 学习笔记 | 王道 | 2.4死锁
  • 【FPGA开发】Vivado自定义封装IP核,绑定总线
  • python的3D可视化库vedo-3 (visual模块)点对象的属性、光效、附注
  • llamaindex实战-ChatEngine-ReAct Agent模式
  • redis快速进门
  • 从0开始linux(39)——线程(2)线程控制
  • International Journal of Medical Informatics投稿经历时间节点
  • BUUCTF—Reverse—Java逆向解密(10)
  • CLIP-MMA: Multi-Modal Adapter for Vision-Language Models
  • 三维扫描仪-3d扫描建模设备自动检测尺寸
  • vue3+ant design vue实现日期选择器默认显示当前年,并限制用户只能选择当前年及之前~
  • 【electron-vite】搭建electron+vue3框架基础
  • 05《存储器层次结构与接口》计算机组成与体系结构 系列课
  • elasticsearch报错fully-formed single-node cluster with cluster UUID
  • Milvus×Florence:一文读懂如何构建多任务视觉模型
  • DAPP
  • 生产环境中,nginx 最多可以代理多少台服务器,这个应该考虑哪些参数 ?怎么计算呢
  • 【深度学习|目标跟踪】StrongSORT 详解(以及StrongSORT++)
  • 23种设计模式-原型(Prototype)设计模式
  • Qt—QLineEdit 使用总结
  • go-zero使用自定义模板实现统一格式的 body 响应
  • BUGKU printf
  • 深度学习:梯度下降法
  • `console.log`调试完全指南
  • ROS VSCode调试方法
  • 16 —— Webpack多页面打包
  • 微服务即时通讯系统的实现(服务端)----(3)
  • .net6.0 mvc 传递 model 实体参数(无法对 null 引用执行运行时绑定)