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

泛微OA编写后端Rest接口

泛微OA编写后端Rest接口

前言

具体实现

运行结果

注意要点

总结


前言

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

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

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

具体实现

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

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

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.dtcms.com/a/30661.html

相关文章:

  • 消息队列-持续更新中
  • leetcode刷题记录(一百零八)——322. 零钱兑换
  • 【Python项目】基于Django的医疗领域用户问答意图识别系统
  • HTML应用指南:利用GET请求获取全国泸溪河门店位置信息
  • 如何利用 Vue 的生命周期钩子进行初始化和清理操作?
  • 第30篇 基于ARM A9处理器用C语言实现中断<六>
  • 文本分类与情感分析算法
  • nodejs npm install、npm run dev运行的坎坷之路
  • 华为昇腾服务器固件Firmware、驱动Drive、CANN各自的作用与联系?
  • 下载或者引入库
  • 14.7 LangChain Experimental 模块解析:解锁 Auto-GPT 开发新范式
  • 【Python】03-Python语法入门
  • 如何通过Origins公链推动边缘计算的物联网应用
  • 【Spring中事务的传播行为有哪些?】
  • go 并发 gorouting chan channel select Mutex sync.One
  • 大语言模型:从开发到运行的深度解构
  • WPF 中显示图形的方式深度解析
  • 2025年度福建省职业院校技能大赛高职组“信息安全管理与评估”赛项样题
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-split_dota.py
  • 【AI绘画】大卫• 霍克尼风格——自然的魔法(一丹一世界)
  • 云手机如何进行经纬度修改
  • 直播平台营销困境与开源AI智能名片2+1链动模式S2B2C商城小程序源码的创新解决方案探究
  • Linux firewalld 常用命令
  • WPS接入deepseek-OfficeAI助手插件下载
  • C语言基础学习指南第二章:核心语法与函数——从函数定义到实战项目,助你快速掌握C语言核心能力
  • 优化 Flink 消费 Kafka 数据的速度:实战指南
  • Windows10配置C++版本的Kafka,并进行发布和订阅测试
  • Linux文件系统与磁盘存储
  • 什么是 Cloud Studio DeepSeek ; 怎么实现Open WebUI快速体验
  • 小结:策略路由(Policy-based Routing,PBR)