2017-10-10 51 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")