2. Proxies

api

The api proxy extends the serviceProxy with API related functions like OpenAPI support.

Can be used in:

router and bean

Syntax

<api name="string"
	 port="integer"
	 method="[*,POST,PUT,GET,DELETE,TRACE,OPTIONS]"
	 host="[string,*]"
	 ip="[ip]">
  <path />?
  <ssl />?
  <request>
    [interceptors]*
  </request>
    [interceptors]*
  <response>
    [interceptors]*
  </response>
  <localhost />?
  <target />?
</serviceProxy>

Sample

<api port="2000">
  <target url="https://api.predic8.de"/>
</api>
Simple forwarding API from port 2000 tohttps://api.predic8.de

<api port="2000">
  <openapi location="fruitshop-api-v1.oas.yaml"/>
</api>
API from OpenAPI YAML file

Attributes

NameRequiredDefaultDescriptionExample
blockRequest false false
legacy attribute for usage by Membrane Monitor -
method false *
If set, Membrane will only consider this rule, if the method (GET, PUT, POST, DELETE, etc.) header of incoming HTTP requests matches. The asterisk '*' matches any method. GET
test false - - -
port false 80
The port Membrane listens on for incoming connections. 8080
ip false not set
If present, binds the port only on the specified IP. Useful for hosts with multiple IP addresses. 127.0.0.1
name false By default, a name will be automatically generated from the target host, port, etc.
The name as shown in the Admin Console. -
blockResponse false false
legacy attribute for usage by Membrane Monitor -
host false not set
A space separated list of hostnames. If set, Membrane will only consider this rule, if the "Host" header of incoming HTTP requests matches one of the hostnames. The asterisk '*' can be used for basic globbing (to match any number, including zero, characters). predic8.de *.predic8.de
externalHostname false - - -

Child Elements

ElementsDescriptionCardinality
description 0..1
openapi Deploys an API from an OpenAPI document. 0..*
path If set, Membrane will only consider this rule, if the path of incoming HTTP requests matches. {@link Path} supports starts-with and regex matching. If used in a {@link SOAPProxy}, this causes path rewriting of SOAP requests and in the WSDL to automatically be configured. 0..1
ssl Configures the usage of inbound SSL (HTTPS). 0..1
target 0..1

Other optional Child Elements


wsdlRewriter, headerFilter, switch, accessControl, index, return, userFeature, http2xml, gatekeeper, oauth2PermissionChecker, regExReplacer, webServer, jsonPointerExtractor, json2Xml, adminConsole, xml2Json, apiKey, oauth2Resource, jwtAuth, cache, oauth2authserver, xenAuthentication, acmeHttpChallenge, analyser, reverseProxying, graphQLProtection, validator, clamav, wsdlPublisher, greaser, statisticsProvider, log, setProperty, APIsJSON, webSocket, soap2Rest, groovyTemplate, wadlRewriter, routerIpResolver, statisticsJDBC, prometheus, setHeader, swaggerRewriter, static, urlNormalizer, openTelemetry, interceptor, soapOperationExtractor, shadowing, basicAuthentication, authHead2Body, ruleMatching, rest2Soap, javascript, balancer, accessLog, apiDocs, if, kubernetesValidation, sampleSoapService, rewriter, clusterNotification, rateLimiter, login, swaggerApiKeyRequirer, requireAuth, spdy, statisticsCSV, accountRegistration, tcp, flowInitiator, counter, paddingHeader, transform, methodOverride, tokenValidator, soapStackTraceFilter, logContext, formValidation, apiKeyChecker, shutdown, xpathExtractor, limit, apiManagement, xmlContentFilter, beautifier, replace, template, xmlProtection, exchangeStore, throttle, testService, jsonProtection, stompClient, oauth2Resource2, ntlm, webServiceExplorer, httpClient, groovy, dispatching