URL Path Parameters #834
This commit is contained in:
17
functions/requestParams.js
Normal file
17
functions/requestParams.js
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
export function hasPathParams(params) {
|
||||||
|
return params.some((p) => p.type === "path")
|
||||||
|
}
|
||||||
|
|
||||||
|
export function addPathParamsToVariables(params, variables) {
|
||||||
|
params
|
||||||
|
.filter(({ key }) => !!key)
|
||||||
|
.filter(({ type }) => type === "path")
|
||||||
|
.forEach(p => variables[p.key] = p.value)
|
||||||
|
return variables;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getQueryParams(params) {
|
||||||
|
return params
|
||||||
|
.filter(({ key }) => !!key)
|
||||||
|
.filter(({ type }) => type != "path")
|
||||||
|
}
|
||||||
@@ -848,6 +848,22 @@
|
|||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="select-wrapper">
|
||||||
|
<select
|
||||||
|
:name="'type' + index"
|
||||||
|
@change="
|
||||||
|
$store.commit('setTypeParams', {
|
||||||
|
index,
|
||||||
|
value: $event.target.value,
|
||||||
|
})
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<option value="query" :selected="param.type === 'query'">{{ $t("query") }}</option>
|
||||||
|
<option value="path" :selected="param.type === 'path'">{{ $t("path") }}</option>
|
||||||
|
</select>
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
<div>
|
<div>
|
||||||
<li>
|
<li>
|
||||||
<button
|
<button
|
||||||
@@ -1305,6 +1321,7 @@ import { tokenRequest, oauthRedirect } from "../assets/js/oauth"
|
|||||||
import { sendNetworkRequest } from "../functions/network"
|
import { sendNetworkRequest } from "../functions/network"
|
||||||
import { fb } from "../functions/fb"
|
import { fb } from "../functions/fb"
|
||||||
import { getEditorLangForMimeType } from "~/functions/editorutils"
|
import { getEditorLangForMimeType } from "~/functions/editorutils"
|
||||||
|
import { hasPathParams, addPathParamsToVariables, getQueryParams } from "../functions/requestParams.js"
|
||||||
const statusCategories = [
|
const statusCategories = [
|
||||||
{
|
{
|
||||||
name: "informational",
|
name: "informational",
|
||||||
@@ -1492,8 +1509,7 @@ export default {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
let path = this.path
|
let path = this.path
|
||||||
let queryString = newValue
|
let queryString = getQueryParams(newValue)
|
||||||
.filter(({ key }) => !!key)
|
|
||||||
.map(({ key, value }) => `${key}=${value}`)
|
.map(({ key, value }) => `${key}=${value}`)
|
||||||
.join("&")
|
.join("&")
|
||||||
queryString = queryString === "" ? "" : `?${queryString}`
|
queryString = queryString === "" ? "" : `?${queryString}`
|
||||||
@@ -1503,6 +1519,7 @@ export default {
|
|||||||
path = path + queryString
|
path = path + queryString
|
||||||
}
|
}
|
||||||
this.path = path
|
this.path = path
|
||||||
|
this.setRouteQueryState()
|
||||||
},
|
},
|
||||||
deep: true,
|
deep: true,
|
||||||
},
|
},
|
||||||
@@ -1573,9 +1590,11 @@ export default {
|
|||||||
set(value) {
|
set(value) {
|
||||||
this.$store.commit("setState", { value, attribute: "uri" })
|
this.$store.commit("setState", { value, attribute: "uri" })
|
||||||
let url = value
|
let url = value
|
||||||
if (this.preRequestScript && this.showPreRequestScript) {
|
|
||||||
const environmentVariables = getEnvironmentVariablesFromScript(this.preRequestScript)
|
if ((this.preRequestScript && this.showPreRequestScript) || hasPathParams(this.params)) {
|
||||||
url = parseTemplateString(value, environmentVariables)
|
let environmentVariables = getEnvironmentVariablesFromScript(this.preRequestScript)
|
||||||
|
environmentVariables = addPathParamsToVariables(this.params, environmentVariables)
|
||||||
|
url = parseTemplateString(url, environmentVariables)
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
url = new URL(url)
|
url = new URL(url)
|
||||||
@@ -1882,8 +1901,7 @@ export default {
|
|||||||
return result === "" ? "" : `${result}`
|
return result === "" ? "" : `${result}`
|
||||||
},
|
},
|
||||||
queryString() {
|
queryString() {
|
||||||
const result = this.params
|
const result = getQueryParams(this.params)
|
||||||
.filter(({ key }) => !!key)
|
|
||||||
.map(({ key, value }) => `${key}=${encodeURIComponent(value)}`)
|
.map(({ key, value }) => `${key}=${encodeURIComponent(value)}`)
|
||||||
.join("&")
|
.join("&")
|
||||||
return result === "" ? "" : `?${result}`
|
return result === "" ? "" : `?${result}`
|
||||||
@@ -2039,8 +2057,10 @@ export default {
|
|||||||
data: requestBody,
|
data: requestBody,
|
||||||
credentials: true,
|
credentials: true,
|
||||||
}
|
}
|
||||||
if (preRequestScript) {
|
|
||||||
const environmentVariables = getEnvironmentVariablesFromScript(preRequestScript)
|
if (preRequestScript || hasPathParams(this.params)) {
|
||||||
|
let environmentVariables = getEnvironmentVariablesFromScript(preRequestScript)
|
||||||
|
environmentVariables = addPathParamsToVariables(this.params, environmentVariables)
|
||||||
requestOptions.url = parseTemplateString(requestOptions.url, environmentVariables)
|
requestOptions.url = parseTemplateString(requestOptions.url, environmentVariables)
|
||||||
requestOptions.data = parseTemplateString(requestOptions.data, environmentVariables)
|
requestOptions.data = parseTemplateString(requestOptions.data, environmentVariables)
|
||||||
for (let k in requestOptions.headers) {
|
for (let k in requestOptions.headers) {
|
||||||
@@ -2261,7 +2281,7 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
addRequestParam() {
|
addRequestParam() {
|
||||||
this.$store.commit("addParams", { key: "", value: "" })
|
this.$store.commit("addParams", { key: "", value: "", type: "query" })
|
||||||
return false
|
return false
|
||||||
},
|
},
|
||||||
removeRequestParam(index) {
|
removeRequestParam(index) {
|
||||||
|
|||||||
@@ -61,6 +61,10 @@ export default {
|
|||||||
request.params[index].value = value
|
request.params[index].value = value
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setTypeParams({ request }, { index, value }) {
|
||||||
|
request.params[index].type = value
|
||||||
|
},
|
||||||
|
|
||||||
addBodyParams({ request }, value) {
|
addBodyParams({ request }, value) {
|
||||||
request.bodyParams.push(value)
|
request.bodyParams.push(value)
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user