PROVIDER_GW is a component designed to facilitate the integration of legacy systems with the Common API Framework (CAPIF).
Project description
PROVIDER_GW (API Exposer Function Gateway)
PROVIDER_GW is a gateway component designed to bridge legacy systems with the Common API Framework (CAPIF). It simplifies the integration process, enabling legacy systems to interact seamlessly with CAPIF and adopt modern APIs without extensive modifications.
The component leverages the Opencapif_sdk to manage the interactions between systems and CAPIF effectively.
Overview of PROVIDER_GW
PROVIDER_GW acts as an intermediary, translating and exposing APIs from legacy systems in a format compatible with CAPIF. It manages communication between the Southbound interface (legacy systems) and the Northbound interface (CAPIF), ensuring secure, reliable, and flexible API interaction.
Getting Started
Prerequisites
To use PROVIDER_GW, you need:
- A registered user account in the CAPIF instance.
- Contact your CAPIF administrator to obtain the necessary credentials (CAPIF username and password).
- The following software dependencies:
- Python 3.12+
pipenvorvirtualenvfor managing Python environments.
Installation Steps
-
Set up a virtual environment:
python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate`
-
Install PROVIDER_GW:
pip install provider_gw
Configuration
PROVIDER_GW requires two YAML configuration files:
- Northbound (
northbound.yaml): Defines interaction with CAPIF. - Southbound (
southbound.yaml): Specifies communication with legacy systems.
1. Northbound Configuration
The northbound.yaml file defines the integration with CAPIF, including API specifications and OpenCapif SDK settings.
Key Fields
ip: The IP address to expose.port: The port to expose.opencapif_sdk_configuration: Configures the OpenCapif SDK.openapi: Specifies the API exposed to CAPIF.
OpenCapif SDK Configuration
Here are the required fields for the opencapif_sdk_configuration:
capif_host: CAPIF server domain.register_host: Registration server domain.capif_https_port: CAPIF server HTTPS port.capif_register_port: Registration server port.capif_username: CAPIF username.capif_password: CAPIF password.debug_mode: Enables detailed logs (TrueorFalse).
Example of a provider's certificate generation settings:
provider:
cert_generation:
csr_common_name: "example"
csr_organizational_unit: "development"
csr_organization: "ACME"
csr_locality: "New York"
csr_state_or_province_name: "NY"
csr_country_name: "US"
csr_email_address: "example@example.com"
OpenAPI Configuration
The openapi field must adhere to the OpenAPI Specification. Use tools like Swagger Editor to validate the configuration.
Example Configuration:
openapi:
openapi: 3.0.0
info:
title: My API
description: Example API for demonstration
version: 1.0.0
paths:
/greet:
get:
summary: Say hello
description: Returns a greeting message.
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: "Hello!"
2. Southbound Configuration
The southbound.yaml file defines how PROVIDER_GW interacts with legacy systems.
Key Fields
ip: The IP address to expose.port: The port to expose.type: The type of endpoint (RESTis currently supported).authentication_method: Authentication options:HTTP Basic AuthenticationJWT Bearer Token
credentials:- For HTTP Basic Authentication:
username: "admin" password: "password123"
- For JWT Bearer Token:
jwt: "your-token"
- For HTTP Basic Authentication:
paths: Maps Northbound API paths to Southbound API paths, including HTTP methods and parameter mappings.
Example Configuration:
southbound:
ip: 0.0.0.0
port: 8000
type: REST
authentication_method: "JWT Bearer Token"
credentials:
jwt: "example-token"
paths:
- northbound_path: "/greet"
southbound_path: "/hello"
method: GET
- northbound_path: "/greet/{name}"
southbound_path: "/hello/{person}"
method: GET
parameters:
- name: person
Usage
- Place the
northbound.yamlandsouthbound.yamlconfiguration files in a working directory. - Use the following commands to interact with PROVIDER_GW:
-
Start the gateway (first-time setup):
cd ./directory/with/configuration/files provider_gw start
-
Run the gateway (after initial setup):
cd ./directory/with/configuration/files provider_gw run
-
Remove the gateway interface:
cd ./directory/with/configuration/files provider_gw remove
Adding a New Endpoint
To add a new API endpoint:
- Update
northbound.yamlto define the endpoint. - Map the corresponding route in
southbound.yaml. - Start the gateway with:
cd ./directory/with/configuration/files provider_gw start
Refreshing the Southbound JWT Token
To refresh the Southbound JWT token:
- Update the
jwtfield in thesouthbound.yamlfile. - Apply the changes with:
cd ./directory/with/configuration/files provider_gw refresh
This ensures the new token is applied seamlessly.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file provider_gw-0.1.tar.gz.
File metadata
- Download URL: provider_gw-0.1.tar.gz
- Upload date:
- Size: 15.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b26096ed786f6e4625e28f428878ff7bf4aef1fd0789d33727cdef4b20fba572
|
|
| MD5 |
482992aa5c339194ce745c3a024aa6ab
|
|
| BLAKE2b-256 |
31e294e21ea5e964b44450c3ae81f2074bacfe1d5bf41abd3edaa973d5885b6d
|
File details
Details for the file provider_gw-0.1-py3-none-any.whl.
File metadata
- Download URL: provider_gw-0.1-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
568d54b48c4180ada5ba4483ff469a7db148e84378fba6f2aa1ca07a059b0994
|
|
| MD5 |
101ddafad6f81395dabc3f09b6b27c41
|
|
| BLAKE2b-256 |
8bf00c6a14315fc189c135544c08b238458816a2a7117e89ff7082c7034d92ee
|