PostIn V1.0.8版本发布,IDEA 插件支持一键扫描上报,让接口定义不再繁琐
PostIn是一款国产开源免费的接口管理工具,包含项目管理、接口调试、接口文档设计、接口数据MOCK等模块,支持常见的HTTP协议、websocket协议等,支持免登陆本地接口调试,同时可以对项目进行灵活的成员权限、消息通知管理等。本周PostIn V1.0.8版本发布,支持IDEA插件一键扫描并上报到PostIn系统。
1、版本更新日志
-
新增
➢ IDEA插件
针对 IntelliJ IDEA 环境推出 PostIn 插件,版本号1.0.1, PostIn 插件是一个针对 IntelliJ IDEA 环境的工具,集成到 IDEA 侧面板中,便于快速访问,帮助开发人员高效地管理API定义。插件可自动生成 API 文档并一键同步到 PostIn 的项目中。
-
修复
➢ 优化 IntelliJ IDEA 环境 PostIn 插件功能显示。
2、IDEA插件安装、使用
2.1 插件功能
-
一键智能解析:在IDEA中扫描JAVA代码,通过添加的注释自动识别接口路径、参数、返回值,无需手动整理!
-
全格式文档生成:秒级导出API标准文档,无缝对接PostIn平台!
-
动态同步更新:代码改动后,文档实时同步更新,杜绝“代码更新、文档滞后”产生的一系列问题!
-
自定义模板:支持团队统一配置文档样式、字段注释规范,让协作更专业!
2.2 插件优势
-
省时省力:3秒生成100个接口文档,避免手工复制粘贴占用开发时间!
-
简单易用:无需配置复杂环境,安装即用,操作简单!
-
零误差:代码即文档,逻辑与描述100%一致,避免人为错误!
-
高效协作:代码与文档实时同步,解决了文档滞后代码、沟通成本高等一系列问题
2.3 插件下载及安装
本节将详细介绍 PostIn 插件下载、安装。
方式1:在 IntelliJ IDEA 中安装 PostIn 插件。打开 IDEA 设置,进入 Plugins(插件)页面,搜索 “PostIn” 并安装 “PostIn” 插件。
方式2:在 Jetbrains Marketplace 中下载后通过本地安装PostIn,打开 IDEA 设置,进入 Plugins(插件)页面,点击۞,选择"install plugin from disk... ",从磁盘安装插件。
插件仅支持 IntelliJ IDEA 2024.1.7 版本。
安装结束后,在idea右侧侧边栏显示PostIn。
2.4 插件配置
本节将详细介绍 PostIn 插件配置。
进入插件后,显示扫描接口, 上报接口,设置三个按钮。
配置PostIn插件,点击“设置”按钮,进入PostIn插件的配置。
需要配置PostIn服务的URL(注意配置的URL尾部不需要带"/"),以及上报接口的所属空间ID,上报接口的所属空间ID可以在PostIn空间详情。
至此,PostIn上报接口的IDEA插件已全部下载、安装、配置结束。
2.5 插件使用指南
本节将详细介绍怎么使用PostIn插件上报接口,生成详细的接口文档。
2.5.1 添加代码注释
首先需要在接口文件controller 中添加注释,包含接口协议、导入接口文件夹名称、接口地址。
/**
* @pi.protocol: http
* @pi.groupName: 空间关注
* @pi.path:/workspaceFollow
*/
-
@pi.protocol:定义了接口的协议。
-
@pi.groupName:定义了接口的文件夹名称。
-
@pi.path:定义了该接口的基本 URL 路径。
其次,需要在接口前添加接口详细信息的注释,包含接口名称、接口详细URL、请求方式、请求类型、请求参数。通过请求类型的不同,可以分为两种。
第一种:模型
/**
* @pi.name:创建空间关注123
* @pi.url:/createWorkspaceFollow
* @pi.methodType:post
* @pi.request-type:json
* @pi.param: model=io.tiklab.postin.workspace.model.WorkspaceFollow
*/
-
@pi.name:定义了接口的名称。
-
@pi.url:和@pi.path共同组成了接口的完整路径,举例接口的完整路径:/workspaceFollow/createWorkspaceFollow
-
@pi.methodType:定义了接口请求方式。
-
@pi.request-type:定义了接口请求类型。
-
@pi.param:请求参数内容。
第二种:字段
/**
* @pi.name:删除空间关注123
* @pi.url:/deleteWorkspaceFollow
* @pi.methodType:post
* @pi.request-type:formdata
* @pi.param: name=id;dataType=string;value=workspaceId;desc=当前删除的id
* @pi.param: name=id2;dataType=string;value=workspaceId2;desc=当前删除的id2
*/
-
@pi.name:定义了接口的名称。
-
@pi.url:和@pi.path共同组成了接口的完整路径,举例接口的完整路径:/workspaceFollow/deleteWorkspaceFollow
-
@pi.methodType:定义了接口请求方式。
-
@pi.request-type:定义了接口请求类型。
-
@pi.param:请求参数内容。
2.5.2 扫描并上传API接口
注释添加完成后,在PostIn插件点击“扫描接口”按钮,扫描当前项目所有接口。
扫描出接口后,用户可单选、多选或全选接口后提交上报。例如,接口总共有7个,按Ctrl选择其中3个,点击“上传接口”按钮,系统弹出”确认上传接口“二次确认弹窗。
点击“是”,选择的接口上传到PostIn系统。
2.5.3 更新API文档
当接口进行更新之后,还可以利用PostIn插件对接口进行更新。
接口成功上传PostIn后,对接口信息进行修改,只要接口路径(即@pi.path和@pi.url组成的路径)未进行修改,再次上传接口,会对当前接口进行更新。
接口路径(即@pi.path和@pi.url组成的路径)修改之后,再次上传接口,接口会按照新接口进行添加。
上报成功之后,可以在PostIn和 IntelliJ IDEA 环境信息对比。
下图为请求为字段,上报PostIn前后信息对比。
2.6 常见问题
-
配置完成后,上报接口提示404
请检查配置的PostIn服务器URL是否正确,注意地址尾部不需要带"/"
相关文章:
PostIn V1.0.8版本发布,IDEA 插件支持一键扫描上报,让接口定义不再繁琐
PostIn是一款国产开源免费的接口管理工具,包含项目管理、接口调试、接口文档设计、接口数据MOCK等模块,支持常见的HTTP协议、websocket协议等,支持免登陆本地接口调试,同时可以对项目进行灵活的成员权限、消息通知管理等。本周Pos…...
删除Linux服务器上多余的系统启动项,并重装Ubuntu系统
问题描述 2024年6月,Centos团队终止维护Centos7系统,Ubuntu成了我的替换方案。正好有一台闲置的服务器,于是我临危受命给这台服务器重装系统。 经过我一番研究,Ubuntu系统初步安装成功了,但是存在一大堆问题ÿ…...
在亚马逊云科技上使用n8n快速构建个人AI NEWS助理
前言: N8n 是一个强大的工作流自动化工具,它允许您连接不同的应用程序、服务和系统,以创建自动化工作流程,并且采用了开源MIT协议,可以放心使用,他的官方网站也提供了很多的工作流,大家有兴趣的…...
JSON介绍及使用
1.JSON 1.JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据序列化协议,基于文本,完全独立于语言。 JSON由键值对组成,支持以下几种数据类型: 字符串:用双引号括起来的文本。 数…...
AOP 的织入过程是怎样的?
AOP(面向切面编程)的织入(Weaving)是将切面(Aspect)应用到目标对象(Target Object)并创建代理对象(Proxy Object)的过程。这个过程可以发生在不同的阶段&…...
链路聚合配置命令
技术信息 加入捆绑组,加大链路间带宽等 配置命令 华三 静态聚合 将接口加入聚合口后再进行配置 //创建静态链路聚合口1,不启用lacp[SWB]interface Bridge-Aggregation 1 [SWB-Bridge-Aggregation1]port link-type trunk [SWB-Bridge-Aggregation…...
为什么有的深度学习训练,有训练集、验证集、测试集3个划分,有的只是划分训练集和测试集?
在机器学习和深度学习中,数据集的划分方式取决于任务需求、数据量以及模型开发流程的严谨性。 1. 三者划分:训练集、验证集、测试集 目的 训练集(Training Set):用于模型参数的直接训练。验证集(Validati…...
【读书笔记·VLSI电路设计方法解密】问题61:扫描插入的目的是什么
如问题60所述,要构建可测试电路,必须确保电路中每个节点都具有可控性和可观测性。但对于包含时序元件(如触发器、锁存器等存储元件)的电路,若不采取特殊设计则难以实现这两项特性。这是因为时序元件关联节点的逻辑状态不仅取决于当前输入,还受其先前存储状态影响——它们…...
通信数据记录仪-产品概念ID
总结: 1、支持高速CAN、支持容错CAN、支持单线CAN(理解是支持不同的协议,CANFD、CAN2.0和LIN?) 2、 通过上位机设计时间...
【数据分享】2002-2023中国湖泊水位变化数据集(免费获取)
湖泊水位变化是研究水资源动态、生态系统演变和气候变化影响的重要指标。湖泊水位的升降不仅反映了降水、蒸发和入流水量的变化,还与人类活动、气候波动及地质过程密切相关。因此,高精度、长时间序列的湖泊水位数据对于水资源管理、洪水预测以及生态环境…...
SQL注入重新学习
前话 sql注入一般就是构造闭合,在查询语句中构造恶意语句,因为过滤并不严格导致信息泄露, 后台登陆语句:SELECT * FROM admin WHERE Username‘user’ and Password‘pass’ 万能密码:‘or ’1‘ ’1‘ # ; sql常用…...
修改Jupyter Notebook主目录文件夹
1、找到Jupyter Notebook配置文档 在anaconda prompt终端输入以下命令,可以显示配置文档所在位置: jupyter notebook --generate-config2、修改Jupyter Notebook主目录文件夹 用记事本打开文件夹中的jupyter_notebook_config.py文件。 在记事本中使用…...
玩转JSONObject:使用方法详解与Map对比
一、初识JSONObject 什么是JSONObject? JSONObject是Java中处理JSON数据的核心工具类,主流JSON库均提供类似实现: org.json(原生包)com.alibaba.fastjson.JSONObjectnet.sf.json.JSONObject 基础创建姿势 <JAV…...
LC416 vector<bool> 和 bool[] 的异同
LeetCode 416 1. 报错代码 // 01背包,从n个数字里面选,能否凑出和为s的方案 class Solution { public:bool canPartition(vector<int>& nums) {int m accumulate(nums.begin(), nums.end(), 0);if(m & 1) return false;m >> 1;…...
(51单片机)矩阵按键密码锁表白(C语言代码编撰)(矩阵按键教程)(LCD1602浅教程)
目录 源代码 main.c MatrixKey.c MatrixKey.h LCD1602.c LCD1602.h Delay.c Delay.h 运行效果图: 第一步: 第二步: 第三步: 第四步: 代码解析与教程: 延时函数Delay LCD1602 MatrixKey模块 源代…...
C++20新增内容
C20 是 C 语言的一次重大更新,它引入了许多新特性,使代码更现代化、简洁且高效。以下是 C20 的主要新增内容: 1. 概念(Concepts) 概念用于约束模板参数,使模板编程更加直观和安全。 #include <concept…...
思维链、思维树、思维图与思维森林在医疗AI编程中的应用蓝图
在医疗AI编程中,思维链(Chain of Thought, CoT)、思维树(Tree of Thoughts, ToT)、思维图(可能指知识图谱或逻辑图)以及思维森林(Forest-of-Thought, FoT)等技术框架通过模拟人类认知和推理过程,显著提升了AI在复杂医疗场景中的决策能力和可解释性: 1. 思维链(CoT)…...
[GN] Python3基本数据类型 -- 与C的差异
文章目录 前言Python3的基本数据类型6个标准的数据类型NumbersStringListtupleSetsDictionaries Python运算符逻辑 运算符成员运算符身份运算符 Python3 数字Python3 序列序列切片序列相加序列相乘序列相关内置函数 Python3 列表访问列表的值更新列表删除列表元素拼接列表嵌套列…...
TCP基础篇(一)
文章目录 1.TCP 是如何保证可靠性的?2. 滑动窗口机制3 超时重传4.TCP 报文格式5. 什么是 TCP 协议5.1 如何唯一确定一个 TCP 连接 6.TCP 三次握手过程6.1 可以两次握手吗? 7.TCP 的四次挥手7.1 为什么客户端要等待2MSL? 8.linux 中查看 TCP 的连接9.TCP 为什么要有…...
Spring-IOC部分
Spring-IOC部分 1.SpringBean的配置详解(Bean标签) (1)scope 默认情况下,单纯的Spring环境Bean的作用范围有两个:Singleton和Prototype singleton:单例,默认值,Spring…...
使用GitHub Actions构建CI/CD流程
GitHub Actions 简介 GitHub Actions 是一种自动化软件开发工作流的方式,与 GitHub.com 深度集成。开发人员可以通过配置 GitHub Actions 来实现基于事件触发的自动工作流,比如,当有任意用户向 master 分支提交代码时,自动执行一…...
Ubuntu服务器 无法正常启动redis
当我们在阿里云服务器上启动redis服务 运行下述命令时 service redis-server start 会出现如下报错 Failed to start redis-server.service: Unit redis-server.service not found. 如图: 解决方案: 通过以下命令重新安装Redis: sudo apt…...
MySQL 索引原理
一、索引基础概念 1. 索引是什么? 定义:索引是帮助MySQL高效获取数据的有序数据结构,类似书籍的目录。核心作用:减少磁盘I/O次数,提升查询速度(以空间换时间)。 2. 索引的优缺点 优点缺点加…...
前端快速入门学习3——CSS介绍与选择器
1.概述 CSS全名是cascading style sheets,中文名层叠样式表。 用于定义网页样式和布局的样式表语言。 通过 CSS,你可以指定页面中各个元素的颜色、字体、大小、间距、边框、背景等样式,从而实现更精确的页面设计。 HTML与CSS的关系:HTML相当…...
WPF 免费UI 控件HandyControl
示例效果和代码 直接可以用 Button 按钮 | HandyOrg 1.安装 , 输入 HandyControl 2.<!--配置HandyControl--> <!--配置HandyControl--> <ResourceDictionary Source"pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/> …...
【代码艺廊】pyside6桌面应用范例:homemade-toolset
在研发测试日常工作中,通常会遇到很多琐碎的事情,占用我们工作的时间和精力,从而导致我们不能把大部分的注意力放在主要的工作上面。为了解决这个问题,除了加人之外,我们通常会开发一些日常用的效率工具,比…...
Hive 常见面试 300 问
一、Hive 基础概念 什么是 Hive?它的主要用途是什么? Hive 与传统关系型数据库有什么区别? 简述 Hive 的架构,各个组件的作用是什么? 解释 Hive 中的元数据,它存储在哪里? Hive 支持哪些数据格式?各自的特点是什么? 什么是 Hive 表的分区?为什么要使用分区? 什么是 …...
OpenMinus 源码深度解析:从 React 模式到多智能体架构实现
OpenMinus 源码深度解析:从 React 模式到多智能体架构实现 本文基于 2024 年 3 月 9 日最新代码版本解析,完整代码已上传至 GitHub(附项目地址https://github.com/mannaandpoem/OpenManus) 一、项目背景与核心价值 1.1 项目定位 …...
【Linux网络与网络编程】04.TCP Socket编程
一、TCP Socket编程接口 // 创建套接字 int socket(int domain, int type, int protocol); // 参数: // domain:域(协议家族),这里使用 AF_INET 表示进行网络编程 // type:网络通信传输的类型࿰…...
初识数据结构——算法效率的“两面性”:时间与空间复杂度全解析
📊 算法效率的“两面性”:时间与空间复杂度全解析 1️⃣ 如何衡量算法好坏? 举个栗子🌰:斐波那契数列的递归实现 public static long Fib(int N) {if(N < 3) return 1;return Fib(N-1) Fib(N-2); }问题…...
CCF GESP C++编程 八级认证真题 2025年3月
C 八级 2025 年 03 月 题号 1 2 3 4 5 6 7 8 答案 B C B A D D D 一、单选题 第 1 题 国家“以旧换新”政策仍在继续,小杨家决定在家里旧的冰箱、电视、洗衣机、微波炉中选两种换新。其中,冰箱有4种型号可选,电视有6种型号可选,…...
React: hook相当于函数吗?
一、Hook 是一个函数,但不仅仅是函数 函数的本质 Hook 确实是一个 JavaScript 函数,例如 useState、useEffect 或自定义 Hook 都是函数。它们可以接受参数(如初始状态值或依赖项数组),并返回结果(如状态值和…...
Git 从入门到精通(开源协作特别版)
🧠 Git 从入门到精通(开源协作特别版) ✅ 基础命令 🧰 高级用法 🛠️ 开源实战技巧 🌍 GitHub 社区协作 适合:从0开始 → 熟练开发者 → 参与/维护开源项目 🔰 第1章:…...
《探索边缘计算:重塑未来智能物联网的关键技术》
最近研学过程中发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击链接跳转到网站人工智能及编程语言学习教程。读者们可以通过里面的文章详细了解一下人工智能及其编程等教程和学习方法。下面开始对正文内容的…...
什么是缓存穿透、缓存雪崩、缓存击穿?
什么是缓存? 缓存就是数据交换的缓冲区,是存贮数据的临时地方,一般读写性能较高。 怎么防止缓存穿透? 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到…...
洛谷题单3-P4956 [COCI 2017 2018 #6] Davor-python-流程图重构
题目描述 在征服南极之后,Davor 开始了一项新的挑战。下一步是在西伯利亚、格林兰、挪威的北极圈远征。 他将在 2018 年 12 月 31 日开始出发,在这之前需要一共筹集 n 元钱。 他打算在每个星期一筹集 x 元,星期二筹集 xk 元,……...
解决浏览器报错Mixed Content
前端代码写死了访问后端的请求为:http://service.xxx.com:8080/api/,前端代码中混合内容(Mixed Content) 导致的。浏览器使用https访问站点时,这个请求会被拦截,并且浏览器打印 login.vue:151 Mixed Conten…...
HCIP【BGP协议(详解)】
目录 1 BGP协议产生背景 2 BGP协议特性 2.1 自治系统间路由传播 2.2 路由矢量协议 2.3 防环机制 2.4 基于TCP传输 2.5 路由更新机制 2.6 丰富的路由属性 2.7 支持CIDR和路由聚合 2.8 路由过滤和策略控制 2.9 动态对等体功能 3 BGP基本术语 4 BGP规划问题 4.1 路…...
集合与容器:List、HashMap(II)
一、ArrayList 是集合框架中最核心的动态数组实现,高频使用的容器之一。 1. 核心数据结构 基于数组实现,维护elementData数组存储元素: transient修饰的elementData不会被默认序列化(通过自定义序列化逻辑优化存储)…...
mac 安装MySQL
1、打开官网,点击Downloads 2、在downloads页面选择MySQL Community Server 3、选择对应的设备和版本,点击下载 4、下载选择 5、下载完成后,点击安装 6、next 到Configguration 时要输入密码(千万别忘记) 7.最后输…...
Pascal语言的软件开发工具
使用Pascal语言的软件开发工具 引言 随着计算机科学的发展,编程语言层出不穷,程序员们在开发时可以选择多种多样的工具。而Pascal语言作为一种历史悠久的程序设计语言,尽管在当今编程语言的生态中已不再是主流,但其优雅的语法和…...
vue组件开发:什么是VUE组件?
什么是VUE组件 在我们实际开发过程中你也许会发现有很多代码是重复的,它们可能是一个按钮、一个表单、一个列表等等,其中最为显著的应该是列表。 以CSDN的首页为例: 上述截图中的文章列表可能会在多处出现,比如此截图是精选博客…...
如何在Springboot的Mapper中轻松添加新的SQL语句呀?
在如今的软件开发界,Spring Boot可是非常受欢迎的框架哦,尤其是在微服务和RESTful API的构建上,真的是让人爱不释手!今天,我们就来聊聊如何为Spring Boot项目中的Mapper添加新的SQL语句吧!说起来࿰…...
微服务架构: SpringCloud服务注册与发现详解
# 微服务架构: SpringCloud服务注册与发现详解 一、什么是微服务架构 微服务架构简介 微服务架构(Microservices Architecture)是一种以一组小型服务应用程序构建系统的软件架构风格。每个服务运行在自己的进程中,通过精简的HTTP API进行通信…...
现代简约杂志海报包装网页设计无衬线英文字体安装包 Seriusans – Condensed Sans Display Font
Seriusans 是一种 Condensed Sans Display 字体,将现代简约与大胆融为一体。其狭窄而醒目的字体营造出强大的存在感,使其成为有影响力设计的绝佳选择,例如海报、杂志标题、品牌、包装、网页设计、运动图形、社论布局、广告活动、企业演示&…...
C/C++的条件编译
一、什么是条件编译? 条件编译是指在编译阶段根据某些条件来决定是否编译某段代码。这通常通过预处理指令来实现,比如 #if、#ifdef、#ifndef、#else、#elif 和 #endif。 二、为什么使用条件编译? 跨平台开发:不同的操作…...
视野,,地面覆盖,重叠需求,FPS,飞行速度等的计算公式
一、计算相机视野与重叠需求 1. 相机参数 IDS UI-5280CP: 分辨率:2456x2054 像素。传感器:假设为 1/1.8" CMOS(常见型号),尺寸约 6.78 mm(宽) 5.67 mm(高…...
ARXML文件解析-1
目录 1 摘要2 ARXML文件2.1 作用及典型应用场景2.2 **ARXML文件的结构树**2.3 TAG(XML元素)2.4 ARXML文件关键元素解析2.4.1 XML声明与处理指令2.4.2 XML注释2.4.3 ADMIN-DATA元素2.4.3 语言相关元素2.4.5 AR-PACKAGE体系结构2.4.6. 数据转换框架2.4.7 S…...
传统开发者视角:智能合约与区块链数据库探秘
前言 在上一篇文章:探秘区块链开发:智能合约在 DApp 中的地位及与传统开发差异中我为大家从传统开发者的角度讲解了一下什么是智能合约。 简单的来说智能合约对于传统前端开发者可以说是API接口,而后端开发者则可以说是负责接口逻辑的程序。 然而从传统的开发意识跳跃到D…...
游戏引擎学习第204天
回顾并为今天的内容做铺垫 好,现在开始这一集。今天我们将进行一些用户界面编程,觉得这是一个展示如何编写这类代码的好时机。很多人对如何做用户界面代码都很好奇,所以展示一下如何编写是非常有意义的。 我之所以在现在的这个地方做这些工…...