https://github.com/mastercard/petstore-application-java
https://github.com/mastercard/petstore-application-java
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/mastercard/petstore-application-java
- Owner: Mastercard
- License: other
- Created: 2024-09-10T10:36:10.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-01-13T15:53:40.000Z (6 months ago)
- Last Synced: 2026-02-09T23:12:26.589Z (6 months ago)
- Language: Java
- Size: 48.8 KB
- Stars: 0
- Watchers: 8
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
### Mastercard Petstore Application
Mastercard Petstore API
- API version: 1.0.0
- App version: 1.0.0
This application provides examples of how a Mastercard API should implement authentication, authorization, and payload encryption.
Please follow the steps in the documentation [here](https://developer.mastercard.com/reference-service-ngw/documentation)
to understand how to utilize this application and adapt it for your service.
## Requirements
Building the API client library requires:
1. Java 17+
2. Maven (3.8.3+)
## Installation
Please follow the instruction below to begin
```shell
mvn clean install
```
This will generate all required files as defined in [petstore.yaml](src/main/resources/petstore.yaml) using the [OpenAPI Generator](https://openapi-generator.tech/) plugin. They should be built into the target folder.
## Getting Started
Set properties in [application.properties](src/main/resources/application.properties)
The authentication mode (mTLS or OAuth1.0a) must be set using
```
-Dspring.profiles.active=oauth
-Dspring.profiles.active=mtls
```
If using the API in OAuth1.0a mode the following are required in [application-oauth.properties](src/main/resources/application-oauth.properties)
```
mastercard.oauth.pkcs12KeyFile
mastercard.oauth.consumerKey
mastercard.oauth.keyAlias
mastercard.oauth.keyPassword
```
If using the API in mTLS mode the following are required in [application-mtls.properties](src/main/resources/application-mtls.properties)
```
mastercard.mtls.pfxKeyFile
mastercard.mtls.keyPassword
```
Encryption properties are required to be set. This API supports JWE encryption. This is in [application.properties](src/main/resources/application.properties)
```
mastercard.encryption.encryptionCert
mastercard.encryption.decryptionKeys
mastercard.encryption.decryptionKeyAlias
mastercard.encryption.decryptionKeyPassword
```
## Running the Application
To see how the average flow of each use case please see the [flow folder](src/test/java/com/mastercard/app/petstore/flow) and run a test. Note this tests will not
run if a `basePath` in [application.properties](src/main/resources/application.properties) is not set. These tests call
out to the service, so they must be set.
The tests can be run using
```shell
mvn test -Dspring.profiles.active=oauth
```
or
```shell
mvn test -Dspring.profiles.active=mtls
```
## Example Scenarios
Example scenarios can be found under `src/main/java/com/mastercard/app/petstore/examples`
There are provide simples uses cases, documented below
### Adoption Flow Example
This demonstrates the typical flow for an adoption.
1) A new adoption is created
2) The adoption is then retrieved using the adoption id from step 1
3) Information is updated before removing it using the same id
4) Clean up. The adoption is removed from the system
### Employee Flow Example
This demonstrates the typical flow for managing an employee.
1) A new employee is added to the system
2) The employee's information is then searched for via SSN
3) Clean up. The employee is removed from the system
### Pet Flow Example
This demonstrates the typical flow for adding a new cat.
1) A new cat is added to the system
2) The cat's information is retrieved via it's id
3) That cat's status is updated to `RESERVED`
4) Clean up. The cat is removed from the system
## Support
For more information, please visit [https://developer.mastercard.com/support](https://developer.mastercard.com/support)
## Author
API_Consultancy_and_Standards@mastercard.com