const template = ` import {HeroPattern} from "@/components/HeroPattern"; import {Note} from "@/components/mdx"; export const title = '<%- tag %>' <% operations.forEach(function(operation){ %> ## <%- operation.summary %> {{ tag: '<%- operation.operation.toUpperCase() %>' , label: '<%- operation.path %>' }} <%- operation.description %> <% if(operation.parameters && operation.parameters.filter((parameter) => parameter.in === 'path').length > 0){ %> #### Path Parameters <% operation.parameters.filter((parameter) => parameter.in === 'path').forEach(function(parameter){ %> <%- parameter.description %> <% }); -%> <% }; -%> <% if(operation.parameters && operation.parameters.filter((parameter) => parameter.in === 'query').length > 0){ %> #### Query Parameters <% operation.parameters.filter((parameter) => parameter.in === 'query').forEach(function(parameter){ %> <%- parameter.description %> <% }); -%> <% }; -%> <% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ %> #### Request-Body Parameters <% components.get(operation.requestBody?.content['application/json'].schema.$ref.split('/').pop())?.parameters.forEach(function(parameter){ %> \} <% if(parameter.enum){ %> enumList="<%- parameter.enum %>" <% }; -%> <% if(parameter.minimum){ %> min=\{<%- parameter.minimum %>\} <% }; -%> <% if(parameter.maximum){ %> max=\{<%- parameter.maximum %>\} <% }; -%> <% if(parameter.minLength){ %> minLen=\{<%- parameter.minLength %>\} <% }; -%> <% if(parameter.maxLength){ %> maxLen=\{<%- parameter.maxLength %>\} <% }; -%> > <%- parameter.description %> <% }); -%> <% }; -%> \`\`\`bash {{ title: 'cURL' }} <% if(true){ -%> curl -X <%- operation.operation.toUpperCase() %> <%- operation.fullPath %> \\<% }; -%> <% if(operation.responseList[0].content && operation.responseList[0].content['application/json']){ %> -H 'Accept: application/json' \\<% }; -%> <% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ %> -H 'Content-Type: application/json' \\<% }; %> -H 'Authorization: Token ' <% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ %>\\\n--data-raw '<%- JSON.stringify(components.get(operation.requestBody?.content['application/json'].schema.$ref?.split('/').pop())?.example, null, 2) -%>'<% }; %> \`\`\` \`\`\`js const axios = require('axios'); <% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ -%> let data = JSON.stringify(<%- JSON.stringify(components.get(operation.requestBody?.content['application/json'].schema.$ref?.split('/').pop())?.example, null, 2) %>);<% }; -%> let config = { method: '<%- operation.operation.toLowerCase() %>', maxBodyLength: Infinity, url: '<%- operation.path %>', <% if(true){%>headers: { <% }; -%> <% if(operation.responseList[0].content && operation.responseList[0].content['application/json']){ %> 'Accept': 'application/json',<% }; -%> <% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ %> 'Content-Type': 'application/json',<% }; %> 'Authorization': 'Token ' <% if(true){ -%>}<% }; -%><% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ -%>,<% }; -%> <% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ %> data : data<% }; %> }; axios(config) .then((response) => { console.log(JSON.stringify(response.data)); }) .catch((error) => { console.log(error); }); \`\`\` \`\`\`python import requests import json url = "<%- operation.fullPath %>" <% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ -%> payload = json.dumps(<%- JSON.stringify(components.get(operation.requestBody?.content['application/json'].schema.$ref?.split('/').pop())?.example, null, 2) %>)<% }; -%> <% if(true){%>headers: { <% }; -%> <% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ %> 'Content-Type': 'application/json',<% }; -%> <% if(operation.responseList[0].content && operation.responseList[0].content['application/json']){ %> 'Accept': 'application/json',<% }; %> 'Authorization': 'Token ' } response = requests.request("<%- operation.operation.toUpperCase() %>", url, headers=headers<% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ %>, data=payload<% }; %>) print(response.text) \`\`\` \`\`\`go package main import ( "fmt" "strings" "net/http" "io/ioutil" ) func main() { url := "<%- operation.fullPath %>" method := "<%- operation.operation.toUpperCase() %>" <% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ %> payload := strings.NewReader(\`<%- JSON.stringify(components.get(operation.requestBody?.content['application/json'].schema.$ref?.split('/').pop())?.example, null, 2) %>\`)<% }; -%> client := &http.Client { } req, err := http.NewRequest(method, url, <% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ %>payload<% } else { %>nil<% }; %>) if err != nil { fmt.Println(err) return <% if(true){%>{<% }; -%> <% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ %> req.Header.Add("Content-Type", "application/json")<% }; -%> <% if(operation.responseList[0].content && operation.responseList[0].content['application/json']){ %> req.Header.Add("Accept", "application/json")<% }; %> req.Header.Add("Authorization", "Token ") res, err := client.Do(req) if err != nil { fmt.Println(err) return } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return } fmt.Println(string(body)) } \`\`\` \`\`\`ruby require "uri" require "json" require "net/http" url = URI("<%- operation.fullPath %>") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true <% if(true){ %>request = Net::HTTP::<%- operation.operation.slice(0,1).toUpperCase() + operation.operation.slice(1).toLowerCase()%>.new(url)<% }; -%> <% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ %> request["Content-Type"] = "application/json"<% }; -%> <% if(operation.responseList[0].content && operation.responseList[0].content['application/json']){ %> request["Accept"] = "application/json"<% }; %> request["Authorization"] = "Token " <% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ %> request.body = JSON.dump(<%- JSON.stringify(components.get(operation.requestBody?.content['application/json'].schema.$ref?.split('/').pop())?.example, null, 2) %>)<% }; -%> response = https.request(request) puts response.read_body \`\`\` \`\`\`java OkHttpClient client = new OkHttpClient().newBuilder() .build(); <% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ -%> MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, '<%- JSON.stringify(components.get(operation.requestBody?.content['application/json'].schema.$ref?.split('/').pop())?.example, null, 2) %>');<% }; %> Request request = new Request.Builder() .url("<%- operation.fullPath %>") <% if(true){ %>.method("<%- operation.operation.toUpperCase() %>"<% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ %>, body<% }; %>)<% }; -%> <% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ %> .addHeader("Content-Type", "application/json")<% }; -%> <% if(operation.responseList[0].content && operation.responseList[0].content['application/json']){ %> .addHeader("Accept", "application/json")<% }; %> .addHeader("Authorization: Token ") .build(); Response response = client.newCall(request).execute(); \`\`\` \`\`\`php '<%- operation.fullPath %>', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, <% if(true){ %>CURLOPT_CUSTOMREQUEST => '<%- operation.operation.toUpperCase() %>',<% }; -%> <% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ %> CURLOPT_POSTFIELDS => '<%- JSON.stringify(components.get(operation.requestBody?.content['application/json'].schema.$ref?.split('/').pop())?.example, null, 2) %>',<% }; %> <% if(true){ %>CURLOPT_HTTPHEADER => array(<% }; -%> <% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ %> 'Content-Type: application/json',<% }; -%> <% if(operation.responseList[0].content && operation.responseList[0].content['application/json']){ %> 'Accept: application/json',<% }; %> 'Authorization: Token ' ), )); $response = curl_exec($curl); curl_close($curl); echo $response; \`\`\` <% operation.responseList.forEach(function(response){ %> <% if(response?.content && response?.content['application/json']){ %> <% if(response?.content['application/json'].schema.type === 'array'){ %> \`\`\`json {{ title: 'Example' }} <%- JSON.stringify(new Array(components.get(response?.content['application/json'].schema.items.$ref?.split('/').pop())?.example), null, 2) %> \`\`\` \`\`\`json {{ title: 'Schema' }} <%- JSON.stringify(new Array(components.get(response?.content['application/json'].schema.items.$ref?.split('/').pop())?.schema), null, 2) %> \`\`\` <% } else { %> \`\`\`json {{ title: 'Example' }} <%- JSON.stringify(components.get(response?.content['application/json'].schema.$ref?.split('/').pop())?.example, null, 2) %> \`\`\` \`\`\`json {{ title: 'Schema' }} <%- JSON.stringify(components.get(response?.content['application/json'].schema.$ref?.split('/').pop())?.schema, null, 2) %> \`\`\` <% }; -%> <% }; -%> <% }); -%> --- <% }); -%> `.trim() export default template