https://github.com/payneteasy/swagger-annotation-processor
Annotation processor for swagger
https://github.com/payneteasy/swagger-annotation-processor
Last synced: 12 months ago
JSON representation
Annotation processor for swagger
- Host: GitHub
- URL: https://github.com/payneteasy/swagger-annotation-processor
- Owner: payneteasy
- Created: 2020-01-29T13:49:48.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-16T15:24:22.000Z (over 3 years ago)
- Last Synced: 2024-12-28T15:38:09.675Z (over 1 year ago)
- Language: Java
- Size: 2.61 MB
- Stars: 1
- Watchers: 6
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# swagger-annotation-processor
Library for Swagger REST services generation by java services marked with special annotations.
REST services are generated both in compile time(annotation processor) and in runtime.
Supports Swagger 3.0.2 (OpenAPI 3.0.2).
Swagger 3.0.2 json specification: https://swagger.io/specification/.
## Usage
1. Add maven dependency:
```xml
com.payneteasy.swagger.apt
apt
1.0.0.1
com.squareup
javapoet
1.12.1
provided
```
2. Turn on annotation processor:
```xml
org.apache.maven.plugins
maven-compiler-plugin
3.8.1
com.payneteasy.swagger.apt.ServicesExportSwaggerProcessor
```
3. Mark service interfaces and/or its methods you want to export to Swagger with `@ExportToSwagger` annotation.
Note that only services with interfaces are supported currently.
Method marked:
```java
public interface IService {
@ExportToSwagger
int doSomething(String str);
}
```
Or interface marked:
```java
@ExportToSwagger
public interface IService {
int doSomething(String str);
}
```
Service implementation:
```java
public class ServiceImpl implements IService {
@Override
public int doSomething(String str) {
return 777;
}
}
```
4. By default the method name becomes the last path part of the REST method,
to override it specify `@ExportToSwagger` `value` on service method:
```java
public interface IService {
@ExportToSwagger("doSomethingInt")
int doSomething(int anInt);
@ExportToSwagger("doSomethingString")
int doSomething(String str);
}
```
5. For service survive on service method parameters rename use `@MethodParam` annotation on method parameters:
```java
@ExportToSwagger
public interface IService {
void doSomething(@MethodParam("anInt2") int anInt);
void doSomethingElse(@MethodParam("anInt2") int anInt, @MethodParam("aString2") String aString);
}
```
6. Implement your controller(s) that uses `Swagger302Generator` and `ServiceInvoker`. See demo.
## Build
```shell script
./build.sh
```
## Demo application
Run `com.payneteasy.swagger.apt.demo.JettyStart`.
Open .
Also there is a low-level services description page .