Giter Club home page Giter Club logo

cool-request's Introduction

Cool Request

中文

Documentation

Static Badge

This plugin is used for debugging HTTP interfaces and schedulers in IntelliJ IDEA.

image

Screenshots

img.png

img.png

Usage Steps:

  1. Go to Setting->Plugins, search for Cool Request, and click install.

img.png

Features

  • ✓️ Collect and display all Controller information defined in Spring Boot, supporting HTTP/reflection calls.
  • ✓ Collect and display timers defined in Spring Boot; you can manually trigger them without waiting for a specified time.
  • ✓ Optionally bypass interceptors during the request.
  • ✓ Optionally specify proxy/original objects during the request.
  • ✓ One-click export to OpenAPI format.
  • ✓ One-click import to Apifox.
  • ✓ Copy requests as curl commands.
  • ✓ Compatible with Gradle, Maven multi-module projects.
  • ✓ Compatible with Java/Kotlin languages.
  • ✓ Powerful HTTP request parameter guessing feature to reduce the time developers spend on key entry.
  • ✓ Write scripts for pre/post request using Java syntax.
  • ✓ Save response results to a file.
  • ✓ Quickly preview JSON, XML, images, HTML, and text responses.
  • ✓ Multiple layout switching options.
  • ✓ Automatically discover Spring Gateway paths.
  • ✓ Multi-environment configuration.

Issues

  1. What are proxy objects and original objects?

    Answer: This plugin does not call the Controller through HTTP requests but uses reflection internally. Therefore, when obtaining an object, the object may be CGLIB proxied, but you can choose the original object. However, some AOP may be disabled in this process.

  2. What are interceptors?

    If your project has an interceptor that matches the Controller, when selecting to apply the interceptor, it will be called first if it matches the Controller. If no interceptor is selected, even if the interceptor matches the Controller, it will not be called. This is one of the original intentions of this plugin, which is used to debug Controllers without authentication.

Build Original Code

./gradlew buildPlugin
2. Open Plugin Setting
3. Install Plugin For Disk
4. Select ./build/distributions/cool-request-plugin.zip

Star History

Star History Chart

cool-request's People

Contributors

ayuayue avatar houxinlin avatar zpj80231 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

cool-request's Issues

输入的url带参数的无法检索到

eg./index?pageNum=1&pageSize=10 无法检索到/index,必须要删除掉参数才可以检索到,
对应的竞品插件 /index?pageNum=1&pageSize=10 是可以正常检索到/index

apifox导出

111111111

你好,问下这里的HTTP部分是哪里的设置内容呢,信息不完整apifox无法导出

json格式响应中缺少null值key

当接口响应数据为json格式时,界面中{}选项中的数据会忽略掉值为null的数据,这会影响开发人员对相应数据的判断, 希望取消此忽略
image
image

建议:增加Controller文件排序选项以优化查找体验

您好,项目维护者,在实际使用过程中,我发现Controller目录下的文件数量随着项目发展日益增多,当前的排序方式不利于快速定位所需文件。

为此,我冒昧地提个建议:

  1. 添加默认按照文件名字母顺序排序的功能。

  2. 或者提供一个配置选项,让用户可以选择按照字母顺序或项目包(namespace)结构顺序进行排序。

这样的调整将有助于提升代码目录的整洁性和开发者查找Controller文件的效率。
期待您能考虑这个建议,并乐意就其实现细节展开进一步交流。感谢您对该项目的持续付出和努力!

关于启动之后的刷新api消失的问题

首先肯定大大的这个插件十分友好,真的特别nice,超级喜欢,希望越来越好、做大做强!!!
插件目前的工作逻辑是在启动的时候读取容器加载api列表,但实际操作的时候有时候会无意点到刷新按钮,这个时候api列表就会消失,需要重新启动项目才能继续工作,希望这点可以优化一下。
思路:建议刷新可以从RequestMappingHandlerMapping这个类入手,可以获取到所有构建的api列表。
image

静态资源服务器功能

我开启了静态资源服务功能,但是在浏览器访问不了文件
image
image
请问是我哪里配置不对吗

启动idea,插件报错

java.lang.NullPointerException: Cannot invoke "com.cool.request.view.tool.CoolRequest.canAddComponentToView()" because "this.coolRequest" is null
	at com.cool.request.view.tool.UserProjectManager.addComponent(UserProjectManager.java:108)
	at com.cool.request.utils.NavigationUtils$1.lambda$run$0(NavigationUtils.java:186)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:878)
	at com.cool.request.utils.NavigationUtils$1.run(NavigationUtils.java:181)
	at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:434)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:132)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$5(CoreProgressManager.java:484)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:248)
	at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:73)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:192)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:610)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:685)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:641)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:609)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:78)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:179)
	at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:73)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$5(ProgressRunner.java:248)
	at com.intellij.openapi.progress.impl.ProgressRunner$ProgressRunnable.run(ProgressRunner.java:498)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
	at java.base/java.lang.Thread.run(Thread.java:840)

coolRequest 为 null,空指针异常了

批量复制http url优化

在一个controller目录下选择多个路径,右击点复制 http url
image

结果点粘贴的时候要么显示的不对,要么什么也复制的结果是空
只有选择单个的时候,可以正常复制

如何把一个接口返回的结果设置为全局变量值

你好,感谢提供这样的一个好用的插件,想问一下,我想实现全局token设置,就是先提交一个login接口,再把login接口返回的token值保存到本地cool request的全局变量值中,再在所有请求的api接口中自动把这个token设置到每个请求的header中,请问如何实现,postman可以实现的。

建议增加接口的中文显示

建议能够根据接口的中文注释增加每个接口的中文名称,这样对于小型公司、个人全栈开发比较有用。接口能够一目了然,不需要再找swagger等再重新对应接口。

使用问题报告

1.启用动态刷新和方法跟踪后,普通的main方法主线程走完后程序无法退出,会一直处于活动状态.
2.调用接口时间很长,调用步骤太久,有时候会直接无法走通,可能是for循环无法退出,效率上远不如postman

图标

能修改下美化下图标不 这个不太好看的样子哈哈哈哈哈
image

增加快捷键设置入口

希望能增加url搜索界面的快捷键设置,目前无法进行设置,只能双shift后鼠标点击切换,建议做成类似CTRL+SHITF+N类似的直接跳转到url搜索界面

本地环境none无法配置全局请求头参数

我在本地环境none的时候需要使用到一些通用的全局header,并且期望在不同的环境里面也使用相同的header,目前不仅不支持所有环境通用的header,而且本地环境也无法设置通用header

Bean definition is abstract 异常

项目里用到了ureport

<bean id="ureport.props" class="com.bstek.ureport.UReportPropertyPlaceholderConfigurer" abstract="true">
	<property name="ignoreUnresolvablePlaceholders" value="true"></property>
</bean>

启动时报错
Exception in thread "Thread-44" org.springframework.beans.factory.BeanIsAbstractException: Error creating bean with name 'ureport.props': Bean definition is abstract
at org.springframework.beans.factory.support.AbstractBeanFactory.checkMergedBeanDefinition(AbstractBeanFactory.java:1478)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154)
at com.hxl.plugin.scheduledinvokestarter.components.xxljob.XXJJobComponentDataHandler.lambda$refresh$0(XXJJobComponentDataHandler.java:54)
at java.lang.Thread.run(Thread.java:750)

把插件禁了才不报错

项目为springboot非web项目时,会导致项目无法启动

该项目为非web项目,使用了spring-boot-starter,导致我在idea中maven打包,会默认打出一个spring-invoke-start的jar,启动项目的时候,也会加载该jar。导致项目启动时,一直报错要找EnableSpringMvcRequestMapping这个类,麻烦在加载时判断项目是否含有这个类在做后续的操作。最终通过debug才找到是加载了spring-invoke-start下面的spring.factories这个才引起的错误。
16:17:37.767 [main] ERROR o.s.b.SpringApplication - [reportFailure,818] - Application run failed
java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext
at com.hxl.plugin.scheduledinvokestarter.components.spring.controller.EnabledSpringMvcRequestMapping.canSupport(EnabledSpringMvcRequestMapping.java:17)
at com.hxl.plugin.scheduledinvokestarter.components.ComponentLoader.run(ComponentLoader.java:58)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:765)
at org.springframework.boot.SpringApplication.lambda$callRunners$2(SpringApplication.java:749)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:744)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1300)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1289)
at com.shsany.EdgeApplication.main(EdgeApplication.java:16)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.