Coder Social home page Coder Social logo

membrane / api-gateway Goto Github PK

View Code? Open in Web Editor NEW
456.0 456.0 137.0 47.67 MB

API gateway for REST, OpenAPI, GraphQL and SOAP written in Java.

Home Page: https://membrane-api.io

License: Apache License 2.0

Java 93.91% CSS 1.33% JavaScript 1.35% XSLT 0.75% Shell 1.25% HTML 0.32% Batchfile 1.03% PowerShell 0.03% Dockerfile 0.02% Python 0.01%
api api-gateway authentication http-proxy java oauth2 proxy rest reverse-proxy ssl

api-gateway's People

Contributors

am29d avatar bonoadil avatar bridgerdier avatar christiangoerdes avatar danielbo avatar dependabot[bot] avatar erkanerol avatar fabiankessler avatar github-actions[bot] avatar helpermethod avatar jf-kisters avatar jlleitschuh avatar k-klemmer avatar koin612 avatar larsp8 avatar martinx3 avatar mcolak avatar precoder avatar predic8 avatar r41d avatar rrayst avatar russelmrcl avatar snyk-bot avatar symle avatar t-burch avatar vlk32 avatar xorpherion avatar ympavlov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

api-gateway's Issues

ConfigurationException

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:

  1. the file name
  2. the line number

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.

Wrong Exception in HttpUtil

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());
}

Take out NS-Prefixes from REST2SOAP JSON Response

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}}}

Admin Console: Error Message for creating new Proxy

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.

tomcat & exchange store

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.

JBoss AS 7 .sar deployment

add a jboss-deployment-structure.xml containing

    <dependencies>
        <module name="org.apache.commons.logging" />
    </dependencies>

and more

web app missing one more context-path

(as a web app)

  • if a load balancing is defined on a ServiceProxy, you clic on it to display the graphical view. On target you have a link to display the load balancing group : this link is not correct (missing relative path)

Service Proxy to predic8.com

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.

Automatically decode message bodies

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.

Config Parsing: Better Error Message for Unknown Interceptor

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

Documentation: interceptors.htm is outdated

This is about http://membrane-soa.org/esb-doc/3.5/interceptors.htm

There is probably more, but I find these 2 things urgent:

  • The listed Interceptor Interface is outdated. It certainly needs to list the very important handleAbort().
    One can always look at the code to see all the methods. On this page I would omit all the noise, and just list the three handle* methods.
  • Replace the text in the Lifecycle paragraph with a short text mentioning exc.setProperty() and exc.getProperty().

Web App: Add log4j.properties

A log4j.properties file is missing in the Web App. One should be in WEB-INF/classes to enable logging into e.g. Tomcat

Exchange has two forms of getUri()

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().

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.