2017-10-10 71 views
0

我在Spring引導中開發了15〜20個服務。Spring Boot中的API網關

現在我想讓外部世界通過API網關使用我的api。所以我正在尋找一個開源的解決方案。

我想要做的實際是發出串/並行請求並通過配置完成,即我想在配置中定義我的請求序列,我的代碼將讀取配置並激發請求。

那麼是否有任何開源解決方案?

+0

'我的代碼會讀取配置和火requets'。你是在談論把你的API作爲一項獨特的服務公開,還是你想做某種自動化的工作? –

+0

Kong是您在尋找的產品:https://getkong.org/ –

回答

0

Kongtyk兩者都是開源的解決方案。 如果你想使用友好的用戶界面,你應該嘗試tyk。如果你更喜歡命令行,你應該使用kong

0

您可以使用Tyk的虛擬端點撰寫您的API。

https://www.tyk.io/docs/compose-apis/virtual-endpoints/

function batchTest (request, session, config) { 
    // Set up a response object 
    var response = { 
     Body: "" 
     Headers: { 
      "test": "virtual-header-1", 
      "test-2": "virtual-header-2", 
      "content-type": "application/json" 
     }, 
     Code: 200 
    } 

    // Batch request 
    var batch = { 
     "requests": [ 
      { 
       "method": "GET", 
       "headers": { 
        "x-tyk-test": "1", 
        "x-tyk-version": "1.2", 
        "authorization": "1dbc83b9c431649d7698faa9797e2900f" 
       }, 
       "body": "", 
       "relative_url": "http://httpbin.org/get" 
      }, 
      { 
       "method": "GET", 
       "headers": {}, 
       "body": "", 
       "relative_url": "http://httpbin.org/user-agent" 
      } 
     ], 
     "suppress_parallel_execution": false 
    } 

    log("[Virtual Test] Making Upstream Batch Request") 
    var newBody = TykBatchRequest(JSON.stringify(batch)) 

    // We know that the requests return JSON in their body, lets flatten it 
    var asJS = JSON.parse(newBody) 
    for (var i in asJS) { 
     asJS[i].body = JSON.parse(asJS[i].body) 
    } 

    // We need to send a string object back to Tyk to embed in the response 
    response.Body = JSON.stringify(asJS) 

    return TykJsResponse(response, session.meta_data) 

} 
log("Batch Test initialised")