HTTP Snippet
HTTP Snippet port for java. See the original node port. Supports many languages & tools including:
cURL,HTTPie,Javascript,Node,C,Java,PHP,Objective-C,Swift,Python,Ruby,C#,Go,OCamland more!
The motivation behind porting this is using it for generating snippets in swagger and redocs. The project is still in development phase.
- Documentation
- Tests
- Releasing to maven
Usage
Enable maven snapshots in ~/.m2/settings.xml
<profiles> <profile> <id>allow-snapshots</id> <activation><activeByDefault>true</activeByDefault></activation> <repositories> <repository> <id>snapshots-repo</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> <releases><enabled>false</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> </profile> </profiles>
Then add this dependency to pom.xml
<dependency> <groupId>io.github.atkawa7</groupId> <artifactId>httpsnippet</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
Here is the code for generating snippet
public class Main { public static void main(String[] args) throws Exception { List<HarHeader> headers = new ArrayList<>(); List<HarQueryString> queryStrings = new ArrayList<>(); User user = new User(); Faker faker = new Faker(); user.setFirstName(faker.name().firstName()); user.setLastName(faker.name().lastName()); HarPostData harPostData = new HarPostDataBuilder() .withMimeType(MediaType.APPLICATION_JSON) .withText(ObjectUtils.writeValueAsString(user)).build(); HarRequest harRequest = new HarRequestBuilder() .withMethod(HttpMethod.GET.toString()) .withUrl("http://localhost:5000/users") .withHeaders(headers) .withQueryString(queryStrings) .withHttpVersion(HttpVersion.HTTP_1_1.toString()) .withPostData(harPostData) .build(); //Using default client HttpSnippet httpSnippet = new HttpSnippetCodeGenerator().snippet(harRequest, Language.JAVA); System.out.println(httpSnippet.getCode()); //Or directly using String code = new OkHttp().code(harRequest); System.out.println(code); } @Data static class User { private String firstName; private String lastName; } }
The result
HttpResponse<String> response = Unirest.get("http://localhost:5000/users") .body("{\"firstName\":\"Burton\",\"lastName\":\"Greenholt\"}") .asString();
Running the demo application
mvn clean install java -jar httpsnippet-demo/target/httpsnippet-demo-0.0.1-SNAPSHOT.jar
After running the demo here are the results

