Kunal - java-unirest 25 oct 2020 codegen added (#1301)

This commit is contained in:
Kunal Kumar
2020-10-26 00:00:36 +05:30
committed by GitHub
parent 438640d5b8
commit f9ae242792
3 changed files with 113 additions and 1 deletions

View File

@@ -236,6 +236,46 @@ Request request = new Request.Builder()
Response response = client.newCall(request).execute();"
`;
exports[`generate request for Java Unirest generate GET request 1`] = `
"HttpResponse<String> response = Unirest.get(\\"https://httpbin.org/path/to?a=b\\")
.header(\\"authorization\\", \\"Basic bW9ja1VzZXI6bW9ja1Bhc3N3b3Jk\\")
.header(\\"h1\\", \\"h1v\\")
.header(\\"h2\\", \\"h2v\\")
.asString();
"
`;
exports[`generate request for Java Unirest generate POST request for JSON 1`] = `
"HttpResponse<String> response = Unirest.post(\\"https://httpbin.org/path/to?a=b\\")
.header(\\"authorization\\", \\"Bearer abcdefghijklmn\\")
.header(\\"h1\\", \\"h1v\\")
.header(\\"h2\\", \\"h2v\\")
.header(\\"Content-Type\\", \\"application/json\\")
.body(\\"{\\\\\\"foo\\\\\\": \\\\\\"bar\\\\\\", \\\\\\"baz\\\\\\": \\\\\\"qux\\\\\\"}\\")
.asString();
"
`;
exports[`generate request for Java Unirest generate POST request for XML 1`] = `
"HttpResponse<String> response = Unirest.post(\\"https://httpbin.org/path/to?a=b\\")
.header(\\"authorization\\", \\"Bearer abcdefghijklmn\\")
.header(\\"h1\\", \\"h1v\\")
.header(\\"h2\\", \\"h2v\\")
.header(\\"Content-Type\\", \\"application/xml\\")
.body(\\"<?xml version='1.0' encoding='utf-8'?>\\\\n<xml>\\\\n <element foo=\\\\\\"bar\\\\\\"></element>\\\\n</xml>\\")
.asString();
"
`;
exports[`generate request for Java Unirest generate PUT request for www-form-urlencoded 1`] = `
"HttpResponse<String> response = Unirest.put(\\"https://httpbin.org/path/to?a=b\\")
.header(\\"Content-Type\\", \\"application/x-www-form-urlencoded\\")
.body(\\"foo=bar&baz=qux\\")
.asString();
"
`;
exports[`generate request for JavaScript Axios generate GET request 1`] = `
"axios.get('https://httpbin.org/path/to?a=b',{
headers : { \\"h1\\": \\"h1v\\",

View File

@@ -16,7 +16,7 @@ import { RubyNetHttpCodeGen } from "./generators/ruby-net-http"
import { SalesforceApexCodegen } from "./generators/salesforce-apex"
import { ShellHTTPie } from "./generators/shell-httpie"
import { JavaOkHttpClientCodegen } from "./generators/java-ok-http-client"
import { JavaUnirestCodegen } from "./generators/java-unirest"
/* Register code generators here.
* A code generator is defined as an object with the following structure.
*
@@ -30,6 +30,7 @@ export const codegens = [
CsRestSharpCodegen,
GoNativeCodegen,
JavaOkHttpClientCodegen,
JavaUnirestCodegen,
JSAxiosCodegen,
JSFetchCodegen,
JSjQueryCodegen,

View File

@@ -0,0 +1,71 @@
import { isJSONContentType } from "~/helpers/utils/contenttypes"
export const JavaUnirestCodegen = {
id: "java-unirest",
name: "Java Unirest",
generator: ({
url,
pathName,
queryString,
auth,
httpUser,
httpPassword,
bearerToken,
method,
rawInput,
rawParams,
rawRequestBody,
contentType,
headers,
}) => {
const requestString = []
// initial request setup
let requestBody = rawInput ? rawParams : rawRequestBody
const verbs = [
{ verb: "GET", unirestMethod: "get" },
{ verb: "POST", unirestMethod: "post" },
{ verb: "PUT", unirestMethod: "put" },
{ verb: "PATCH", unirestMethod: "patch" },
{ verb: "DELETE", unirestMethod: "delete" },
{ verb: "HEAD", unirestMethod: "head" },
{ verb: "OPTIONS", unirestMethod: "options" },
]
// create client and request
const verb = verbs.find((v) => v.verb === method)
requestString.push(`HttpResponse<String> response = Unirest.${verb.unirestMethod}("${url}${pathName}${queryString}")\n`)
if (auth === "Basic Auth") {
const basic = `${httpUser}:${httpPassword}`
requestString.push(
`.header("authorization", "Basic ${window.btoa(
unescape(encodeURIComponent(basic))
)}") \n`
)
} else if (auth === "Bearer Token" || auth === "OAuth 2.0") {
requestString.push(`.header("authorization", "Bearer ${bearerToken}") \n`)
}
// custom headers
if (headers) {
headers.forEach(({ key, value }) => {
if (key) {
requestString.push(`.header("${key}", "${value}")\n`)
}
})
}
if (contentType) {
requestString.push(`.header("Content-Type", "${contentType}")\n`)
}
// set body
if (["POST", "PUT", "PATCH", "DELETE"].includes(method)) {
if (contentType.includes("x-www-form-urlencoded")) {
requestBody = `"${requestBody}"`
}else
{ requestBody = JSON.stringify(requestBody)
}
requestString.push(`.body(${requestBody})`)
}
requestString.push(`\n.asString();\n`)
return requestString.join("")
},
}