Desired Behaviour
I want to test an apiman API locally in order to view the response of the apiman-quickstarts/echo-service (or if that is no longer applicable in the latest version of apiman, any echo response would be great).
What I've Tried
I installed apiman on Ubuntu 17.10 using the following from the the official apiman site:
mkdir ~/apiman-1.3.1.Final
cd ~/apiman-1.3.1.Final
curl http://download.jboss.org/wildfly/10.1.0.Final/wildfly-10.1.0.Final.zip -o wildfly-10.1.0.Final.zip
curl http://downloads.jboss.org/apiman/1.3.1.Final/apiman-distro-wildfly10-1.3.1.Final-overlay.zip -o apiman-distro-wildfly10-1.3.1.Final-overlay.zip
unzip wildfly-10.1.0.Final.zip
unzip -o apiman-distro-wildfly10-1.3.1.Final-overlay.zip -d wildfly-10.1.0.Final
cd wildfly-10.1.0.Final
./bin/standalone.sh -c standalone-apiman.xml
Using the apiman GUI (localhost:8080/apimanui/api-manager), I created an Organisation, a Public API with no API Security, an Endpoint arbitrarily defined as http://localhost:8080/apiman-echo, and a Client App. As the API is defined as Public, it is my understanding that no Contract needs to be defined in the Client App.
The Managed Endpoint of the API was provided in the GUI as:
https://localhost:8443/apiman-gateway/MyTestOrganisation/MyTestAPI/2.0
Actual Behaviour
These are the curl results:
# using the 'managed endpoint' provided in the gui - https
curl -k https://localhost:8443/apiman-gateway/MyTestOrganisation/MyTestAPI/2.0
<html><head><title>Error</title></head><body>404 - Not Found</body></html>
# using the 'managed endpoint' provided in the gui - http
curl -k http://localhost:8443/apiman-gateway/MyTestOrganisation/MyTestAPI/2.0
curl: (52) Empty reply from server
#using the endpoint i defined
curl -k http://localhost:8080/apiman-echo
<html><head><title>Error</title></head><body>404 - Not Found</body></html>
The crash course documentation (apiman.io/latest/crash-course.html) states that the following is the contents of the apiman folder, however a search for quickstarts in the wildfly-10.1.0.Final folder on my pc returns no results:
├── apiman
│ ├── data
│ │ ├── all-policyDefs.json
│ │ └── apiman-realm.json
│ ├── ddls
│ │ ├── apiman_mysql5.ddl
│ │ └── apiman_postgresql9.ddl
│ ├── quickstarts
│ │ ├── echo-service
│ │ ├── LICENSE
│ │ ├── pom.xml
│ │ └── README.md
│ └── sample-configs
│ ├── apiman-ds_mysql.xml
│ └── apiman-ds_postgresql.xml
I feel like I am missing a couple of steps somewhere that relate to "installing" the echo-service and making it available to test.
Searching for echo in apiman.gitbooks.io/apiman-user-guide and apiman.gitbooks.io/apiman-production-guide produces no results, whilst apiman.io/latest/developer-guide.html states:
the mock back-end API is a simple "echo" API that responds to all requests with a JSON payload describing the request it received
But I am not sure how to interpret and utilise that information.
I think I have figured out a solution.
There is a section in a blog post here called "Getting and Building and Deploying the Example API" the content of which seems to be more relevant to earlier versions of apiman but generally holds true.
I document my process and result below in case it assists anyone else.
The following steps from the blog post resulted in a compilation error:
After logging lots of download information, the following error was displayed:
And then I looked for java version and got the following:
So I did this:
And got
BUILD SUCCESS. The blog post continues that:It actually output the location of the
.jarfile:But there was a
.warfile in the same directory:So I copied that to
/home/me/apiman-1.3.1.Final/wildfly-10.1.0.Final/standalone/deploymentsand saw the server output change in the other terminal:This was the resulting curl results:
Whilst this is encouraging, I am concerned that because I set up the API in the apiman GUI first with the
/apiman-echoendpoint, there will be a clash between it and the endpoint I created through the maven process, but we will see.