2015-09-30 97 views
0

我創建了一個Swagger(上的NodeJS /快遞)測試API本規範(僅適用於相關部分):Swagger API「需要」 - 需要多少錢?

... 
parameters: 
    - name: name 
    in: query 
    required: true 
    type: string 
... 

但我可以調用空放慢參數的URL,例如

http:// localhost/test?name =

而且它沒有任何問題,不會引發異常或任何其他跡象。爲什麼?

回答

1

如果我通過curl或通過郵遞員從終端進行類似的呼叫,它也可以工作。我解析了請求對象中的查詢,發現在這種情況下,查詢參數被解釋爲一個空字符串。

通過SwaggerUI進行調用的方式不同,因爲UI實際上不會進行調用,除非查詢字段有值。

嘗試在你的處理程序中做console.log(req.query);。您可能會看到{name: ''}。這是合法的,只是名稱的值是一個空字符串。

看看JSON4這裏:Representing null in JSON。所以名字被定義,但它是空的。

您可能需要檢查空字符串值。

我希望這有助於!