When you initialize a WSO2 API Microgateway project, it creates a directory structure for the project in the location where you ran the command. An empty
api_definitions folder is created inside the project directory. You, as an API developer, can add multiple open API definitions inside the
api_definitions folder. You can modify the Open API definition using open API vendor specific extensions for the purpose of specifying the backend endpoint details, request and response interceptors, throttle policies, CORS configuration and more.
After the project is initialized, you will notice that a directory based on the name of the MGW project (e.g., petstore) has been created within the directory where you executed the
init command. The folder structure is similar to the following.
[project_name] ├── api_definitions ├── conf │ └── deployment-config.toml ├── extensions │ ├── extension_filter.bal │ ├── startup_extension.bal │ └── token_revocation_extension.bal ├── gen | └── api_definitions ├── grpc_definitions ├── interceptors ├── lib └── policies.yaml
The following table explains the usage of each folder.
|api_definitions||Stores Open API definitions.|
|grpc_definitions||Stores gRPC definitions.|
|extensions||Includes the following extensions.
|gen/api_definitions||Is it used to store all the OpenAPI definitions of the APIs that you import from WSO2 API Manager.|
|interceptors||Includes any request interceptors or response interceptors that you use for the APIs in the Microgateway project. An interceptor is able to perform mediation and transformation on a request or response.|
|policies.yaml||This specifies the predefined policies used for the project.|
|target||Includes the runtime artifacts from the build command.|
|target/gen||It is used to store all the generated Ballerina sources.|