/api-layer

Zowe API Mediation Layer

Primary LanguageJavaEclipse Public License 2.0EPL-2.0

API Mediation Layer

Build Status

codecov SonarQube

The home of Zowe API Mediation Layer

Prequisites

Following platform is required to run the API Mediation Layer:

Other development prerequisites

Following tools are required to build and develop API Mediation Layer:

Quick start

Bootstrap gradle to get wrapper:

UNIX
./bootstrap_gradlew.sh

Windows
bootstrap_gradlew.bat

Build all modules:

./gradlew build

You need to install concurrently globally:

npm install -g concurrently

Run all service on local machine:

npm run api-layer

Setting up connection to z/OSMF

z/OSMF is required for the API Catalog login. You need to configure a valid z/OSMF instance to config/local/api-defs/zosmf-sample.yml under the instanceBaseUrls.

The certificate of z/OSMF needs to be trusted by APIML. You have to options:

  1. Import it to the APIML keystore using scripts/apiml_cm.sh --action trust as desribed at Trust certificates of other services

  2. Disable certificate validation as described in Disabling certificate validation on localhost

Run unit tests

Unit tests for Java and TypeScript modules are executed as a part of the build process.

Measure code coverage

For the code coverage of all modules, run:

./gradlew coverage

The code coverage for new code should be higher that 60% and should not be decreased for existing code.

The reports in HTML format are stored build/reports/jacoco/test/html/index.html for each Java module.

For the code coverage of a single Java module (for example discovery-service), run:

./gradlew :discovery-service:jacocoTestReport

You can an individual test class by:

./gradlew :discovery-service:test --tests com.ca.mfaas.discovery.staticdef.ServiceDefinitionProcessorTest

Run integration tests

Follow the instructions in Integration Tests to run integration tests.

Security

For more information about how the certificates between APIML services are setup, see TLS Certificates for localhost.

Contributor guidelines

Follow the guidelines in Contributing to add new functionality.

Local configuration of services

Follow the guidelines in Local Configuration to set local environment properties for testing on your local machine include HTTPS setup.

Also if you use IntelliJ IDEA, see learn how to configure Run Dashboard to use these local configurations.

If you use Visual Studio Code, see how to configure it to develop and debug local configurations.

Adding services that does not support API Mediation Layer natively

See Adding Services to API Gateway without Code Changes.

API Catalog UI

For more information about the UI of the Catalog see its README.