泛微OA编写后端Rest接口

news/2025/2/22 11:57:55

泛微OA>泛微OA编写后端Rest接口

前言

具体实现

运行结果

注意要点

总结


前言

泛微E9中,可以通过注解的方式来编写对外的接口,之前的版本都是通过编写servlet类,然后在web.xml文件中将这个类和访问路径进行编辑之后才好在浏览器中通过输入对应的url来进行访问,这样的话,每一次编写对应的对外接口都比较麻烦

泛微升级到E9之后,对应的jdk也从1.6升级到了1.8;已经可以支持通过使用注解来进行开发了,在泛微中使用注解进行开发的话就和之前在javaWeb中编写Rest接口很类似了

虽然但是泛微规定了一系列的编写规则就类似java的三层架构一样,但是如果对代码的美观性以及规范性和可重用性不是特别在意的话完全可以通过一个类来实现整个接口的开发

具体实现

在编写E9的Rest接口的时候,咱们必须要注意的是类的存放路径的问题,只有将class文件放在服务器正确的包下才能访问到对应的接口

泛微的只是文档中有对此的介绍【文档中详细说明了他的三层规范要求,但是我也说了对此不介意的可以直接一个类解决所有!!!

java">package com.api.workflow.web.workflowPath;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;

import com.alibaba.fastjson.JSON;


import weaver.conn.RecordSet;
import weaver.general.Util;

/**
 * @author cxy
 *
 */
@Path("/workflow/test")
public class EcodeTestActionWorkflow {
	@GET
    @Path("/getInfo2")
  	@Produces(MediaType.TEXT_PLAIN)
    public String test(@Context HttpServletRequest request,@Context HttpServletResponse response) {
	  Map<String, String> map = new HashMap<>();
	  RecordSet rs = new RecordSet();
	  String sql = "select * from Resource where loginid = 'no123";
	  rs.execute(sql);
	  rs.first();
	  String username = Util.null2String(rs.getString("lastname"));
        map.put("test", "test3");
        map.put("username", username);
        
        String jsonStr = JSON.toJSONString(map); 
        System.out.println(jsonStr);
	  
	  return jsonStr;
    }

}

当然了这只是我的一个小小的建议,如果你对代码规范有自己的要求的话,完全可以按照她写的三层架构来实现接口的【没有任何问题,看你自己!!!

运行结果

在把java文件编译好的class文件放在对应的【workflowPath】包下之后,重启服务器,即可通过访问对应的URL访问接口了

注意要点

  1. 接口的class文件存放位置一定要在workflowPath包下,只有这个包下的接口可以在类上通过@Path进行规定【我是说如果你打算用一个类来实现接口功能的话】
  2. 如果你发现你的注解对应的包无法导入,那么你需要查看你的lib里面是否有对应的jersey的包

总结

最后的最后,再一次强调,选择使用三层架构以及选择不使用都是个人自由哦~

如果有任何问题的话可以在评论区进行讨论哦~


http://www.niftyadmin.cn/n/5862223.html

相关文章

MySQL 安装过程记录以及安装选项详解

目录 简述 1. 安装MySQL之前 1.1 下载地址 1.2 过滤组件 2. 选择安装组件 2.1 可选组件介绍 2.2 安装过程记录 2.2.1 认证界面说明 2.2.2 服务选项说明 2.2.3 服务器文件权限 2.2.4 应用配置说明 简述 本文主要是介绍如何安装MySQL Community Server 9.2 Innovatio…

动态存储斐波那契数列(递归优化)

递归 递归是c当中一种自身调用自身的算法。 普通递归解决斐波那契数列问题 #include<iostream> using namespace std; int f(int n){int sum;if(n<2){sum1;}else{sumf(n-1)f(n-2);}return sum; } int main() {int n;cin>>n;cout<<f(n);return 0;}当数据…

Mac book Air M2 用VMware安装 Ubuntu22.04

安装 VMware Fusion 下载 Ubuntu 安装VMware 完成之后运行新建 将对应Ubuntu 版本拖拽 如图 选择第一个回车 选绿色 回车 为空 相关命令行 sudo apt install net-tools sudo apt install ubuntu-desktop sudo reboot 常用命令行 uname uname -a clear ll ifconfig (查…

想象一个AI保姆机器人使用场景分析

把我的一个想象AI保姆机器人使用场景用DeepSeek和Kimi进行深度思考&#xff0c;下面2张图分别是kimi和ds的思维链。我觉得ds的总结一如既往的优秀。 关于AI是否具备智慧的判断与伦理反思 一、AI的“智慧”本质&#xff1a;能力与局限 当前AI的技术边界 无自主意识&#xff1…

计算机视觉基础|从 OpenCV 到频域分析

一、引言 在当今数字化时代&#xff0c;图像处理已渗透到我们生活的方方面面&#xff0c;从日常使用的智能手机拍照美化&#xff0c;到医学领域的精准诊断&#xff0c;再到自动驾驶中的环境感知&#xff0c;其重要性不言而喻。在图像处理领域中&#xff0c;OpenCV 和频域分析&…

【Vue.js 和 React.js 的主要区别是什么?】

Vue.js 和 React.js 的主要区别是什么&#xff1f; 前言 Vue.js 和 React.js 是当前最流行的两个前端框架&#xff0c;它们都用于构建用户界面&#xff0c;但在设计理念、语法和使用方式上有显著差异。本文将从多个维度对比 Vue.js 和 React.js 的主要区别&#xff0c;帮助开…

JAVA学习-练习试用Java实现“使用Apache Flink对实时数据流进行复杂事件处理和筛查”

问题&#xff1a; 编写一个Java程序&#xff0c;使用Apache Flink对实时数据流进行复杂事件处理和筛查。 解答思路&#xff1a; Apache Flink 是一个流处理框架&#xff0c;非常适合进行实时数据流的复杂事件处理和筛查。以下是一个简单的Java程序示例&#xff0c;它展示了如何…

【个人开源】——从零开始在高通手机上部署sd(二)

代码&#xff1a;https://github.com/chenjun2hao/qualcomm.ai 推理耗时统计 单位/ms 硬件qnncpu_clipqnncpu_unetqnncpu_vaehtp_cliphtp_unethtp_vae骁龙8 gen124716.994133440.39723.215411.097696.327 1. 下载依赖 下载opencv_x64.tar,提取码: rrbp下载opencv_aarch64.t…