[英]Adding arbitrary http headers with defaults in Swagger for R Plumber
我已將不記名令牌授權添加到我的 Swagger(使用 Plumber 創建),使用此處的解決方案。
現在我想添加作為請求一部分的任意標頭。 我的水管工部署由 React 儀表板使用,其中解析req$HTTP_TENANT
為我提供了所需的值。 這是我想在 Swagger 中重新創建的。
考慮這個例子:
library(plumber)
r <- plumber::pr("plumber.R") %>%
plumber::pr_set_docs("swagger") %>%
plumber::pr_set_api_spec(function(spec) {
spec$components$securitySchemes$bearerAuth$type <- "http"
spec$components$securitySchemes$bearerAuth$scheme <- "bearer"
spec$components$securitySchemes$bearerAuth$bearerFormat <- "JWT"
spec$security[[1]]$bearerAuth <- ""
spec$components$parameters$HTTP_TENANT <- "HTTP_TENANT"
spec$parameters[[1]]$HTTP_TENANT <- "Customer name"
spec
})
r %>% plumber::pr_run(port = 8000, host = '0.0.0.0')
這給出了以下結果:
HTTP_TENANT
,可能在 Bearer 令牌輸入下方鍵入? 它也可能在 Swagger 頂部的其他地方。Customer name
,還有 Bearer 令牌(即可以從 R 以編程方式輸入)?在 Swagger 中,可以在 API 端點添加一個參數,並將“in”屬性更改為“header”,以請求任何 header,例如 HTTP_TENANT。 例如:
spec$paths$"/endpoint"$get$parameters[[1]]$name <- "HTTP_TENANT"
spec$paths$"/endpoint"$get$parameters[[1]]$in <- "header"
spec$paths$"/endpoint"$get$parameters[[1]]$description <- "Customer name"
因此,在 Swagger UI 的“參數”部分下,將添加“HTTP_TENANT”header 的輸入字段。
參數 object 的“默認”屬性可以添加到標頭以提供默認值。 例如:
spec$paths$"/endpoint"$get$parameters[[1]]$default <- "customer1"
默認值也可以通過從外部源(如配置文件)讀取它們或通過使用 R package 處理身份驗證(如 httr)自動處理不記名令牌來以編程方式設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.