membrane / api-gateway Goto Github PK
View Code? Open in Web Editor NEWAPI gateway for REST, OpenAPI, GraphQL and SOAP written in Java.
Home Page: https://membrane-api.io
License: Apache License 2.0
API gateway for REST, OpenAPI, GraphQL and SOAP written in Java.
Home Page: https://membrane-api.io
License: Apache License 2.0
The add-Form of the Web console does not work for the Web App Deployment.
See:
https://groups.google.com/forum/?hl=en_DE&fromgroups=#!topic/membrane-monitor/kiQZ1bA1HHc
I see to possible solutions:
1.) Disable or remove the form inside the Web App
2.) Remove the port-Field and make it work
steps to reproduce:
Document how to access a REST Service from a JavaScript inside HTML.
Show the total # of clients in Admin/Clients
As of now membrane throws Exception for illegal user configuration (proxies.xml). I suggest adding a ConfigurationException (I'm fine with extending checked Exception).
An example is AbstractProxy.java line 284:
throw new Exception("Unknown interceptor found: " + name);
This ex makes it up the tree to the user's face, without any wrapping. Configuration exceptions must include:
Somewhere up the stack someone must know from where the offending configuration is coming from, and can wrap this low level ex in a more verbose one.
The following method is also used for reading HTTP header => The Exception should be changed or the name of the exception should be changed.
public static String readLine(InputStream in) throws IOException, EndOfStreamException {
StringBuilder line = new StringBuilder(128);
int b;
while ((b = in.read()) != -1) {
if (b == 13) {
in.read();
return line.toString();
}
line.append((char) b);
}
throw new ErrorReadingStartLineException(line.toString());
}
Eclipse will display tooltips in the XML editor for the elements and attributes, if there is documentation in the schema.
Also set default timeout to 25s
See discussion at Google Groups:
https://groups.google.com/forum/?hl=en_DE&fromgroups=#!topic/membrane-monitor/m8j6218EsHo
New interceptor to set an HTTP header:
Usage:
Instead of:
{"ns1:getBankResponse":{"ns1:details":{"ns1:bezeichnung":"Raiffeisenbank Kraichgau","ns1:bic":"GENODE61KIR","ns1:ort":"Kirchardt","ns1:plz":74912}}}
return
{getBankResponse":{"details":{"bezeichnung":"Raiffeisenbank Kraichgau","bic":"GENODE61KIR","ort":"Kirchardt","plz":74912}}}
If you create a new proxy at localhost:9000 using the small form below the list of proxys and you use a port < 1024 without the priviledges you get an IncokationTargetException.
There should be a better message indicating that the port is already bound or that the user has no rights to open it.
The Distribution should become a bit smaller.
It needs perhaps 2.5 time the amount that is configured
I don't know if it's linked with Tomcat install but, I use file exchange store and response messages are writen but not request.
For example/validation/form
provide README, form.html
form.html:
Link with GET Parameters
H2: Artikel Name: Price: Production Year:for configuration element reference
add a jboss-deployment-structure.xml
containing
<dependencies>
<module name="org.apache.commons.logging" />
</dependencies>
and more
I think this is normal behaviour
21:23:10,372 ERROR HttpEndpointListener:61 - java.net.SocketException: Socket closed
This will make it possible to:
Besides the namespace declarations the proxies.xml file should stay as simple as it is.
(as a web app)
A service proxy defined in the Web console using the add-Button is not working if the targethost is predic8.com but predic8.de works fine.
Also rewrite the HTTP request header "Destination" (see RFC 2518 section 9.3; also used by WebDAV) in the reverseProxying interceptor.
21:30:39,094 WARN LogInterceptor:148 - HTTP/1.1 200 OK
It should be possible to bind a service proxy to a specific IP on a multihomed host.
...gzip, compress, XOP should be realized as implicit decoders (instead of the current "MessageUtil.getContent(exc)") that are activated when calling getBodyAsStream, but not if the message is simply forwarded.
You get a stacktrace plus:
09:08:36,897 ERROR HotDeploymentThread:58 - Could not redeploy proxies.xml
java.lang.Exception: Unknown interceptor found: admin
if you misspell an interceptor name. Maybe we can omit the stacktrace and add:
"Please check the spelling of your configuration. You will find a configuration reference at: http://"
The URL should point to the new location for the Membrane Service Proxy
Logic:
1.) If Accept Header is present in the response => use Encoding from there
2.) Use format specified in the rest2soap element
This is about http://membrane-soa.org/esb-doc/3.5/interceptors.htm
There is probably more, but I find these 2 things urgent:
change
to
Lets discuss this. I ' am not sure about this.
It is not really a tunnel. A better name would be:
ssl-non-ssl-client-to-secured-server
Also the documentation at:
http://www.membrane-soa.org/esb-doc/3.5/ssl-termination-tunneling.htm
should be updated.
Does the current behaviour: pool is for all clients, work everywhere?
What about SESSIONs?
Should we include client-ip/port or JSESSIONID to the key?
21:23:10,377 WARN HotDeploymentThread:52 - proxies.xml was reloaded.
A log4j.properties file is missing in the Web App. One should be in WEB-INF/classes to enable logging into e.g. Tomcat
exc.getRequest().getUri() vs. exc.getRequestURI()
in my test request i get the exact same String value for both method calls.
but the code in those methods is different, they get the string in different ways. so i assume that under certain circumstances they don't return the same String?
both methods have no javadoc.
task: document why exc.getRequestURI() is needed, and in what way it differs.
alternatively, set it to deprecated and refer to exc.getRequest().getUri().
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.