{"id":32527153,"url":"https://github.com/specmatic/specmatic-order-bff-jms","last_synced_at":"2026-07-09T15:31:28.777Z","repository":{"id":182799822,"uuid":"668635060","full_name":"specmatic/specmatic-order-bff-jms","owner":"specmatic","description":"This sample project demonstrates how we can practice contract-driven development and contract testing in a SpringBoot (Kotlin) application that depends on an external domain service and JMS.. ","archived":false,"fork":false,"pushed_at":"2026-07-08T00:43:13.000Z","size":6413,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-07-08T02:14:44.769Z","etag":null,"topics":["sample-project"],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/specmatic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-07-20T09:06:30.000Z","updated_at":"2026-07-02T00:56:04.000Z","dependencies_parsed_at":"2024-07-24T17:18:18.430Z","dependency_job_id":"b0331ce8-9d0b-48f0-b52c-373abc232d10","html_url":"https://github.com/specmatic/specmatic-order-bff-jms","commit_stats":null,"previous_names":["znsio/specmatic-order-bff-jms","specmatic/specmatic-order-bff-jms"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/specmatic/specmatic-order-bff-jms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specmatic%2Fspecmatic-order-bff-jms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specmatic%2Fspecmatic-order-bff-jms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specmatic%2Fspecmatic-order-bff-jms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specmatic%2Fspecmatic-order-bff-jms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/specmatic","download_url":"https://codeload.github.com/specmatic/specmatic-order-bff-jms/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specmatic%2Fspecmatic-order-bff-jms/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35304874,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-09T02:00:07.329Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["sample-project"],"created_at":"2025-10-28T10:15:43.616Z","updated_at":"2026-07-09T15:31:28.770Z","avatar_url":"https://github.com/specmatic.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Specmatic Sample: SpringBoot BFF calling Domain API and JMS\n\n* [Specmatic Website](https://specmatic.io)\n* [Specmatic Documentation](https://docs.specmatic.io)\n\nThis sample project demonstrates how we can practice contract-driven development and contract testing in a SpringBoot (Kotlin) application that depends on an external domain service and JMS.  \nHere, Specmatic is used to stub calls to domain API service based on its OpenAPI spec and mock JMS based on its AsyncAPI spec.  \nPlease contact us at https://specmatic.io if you wish to try it out.\n\nHere is the domain api [contract/open api spec](https://github.com/specmatic/specmatic-order-contracts/blob/main/io/specmatic/examples/store/openapi/api_order_v1.yaml)\n\nHere is the [AsyncAPI spec](https://github.com/specmatic/specmatic-order-contracts/blob/main/io/specmatic/examples/store/asyncapi/jms.yaml) of JMS that defines queues and message schema.\n\n## Definitions\n* BFF: Backend for Front End\n* Domain API: API managing the domain model\n* specmatic mock/Mock Server: Create a server that can act as a real service using its OpenAPI or AsyncAPI spec\n\n## Background\nA typical web application might look like this. We can use Specmatic to practice contract-driven development and test all the components mentioned below. In this sample project, we look at how to do this for nodejs BFF which is dependent on Domain API Service and JMS demonstrating both OpenAPI and AsyncAPI support in specmatic.\n\n![HTML client talks to client API which talks to backend API](assets/specmatic-order-bff-jms-architecture.gif)\n\n## Tech\n1. Spring boot\n2. Specmatic\n3. Specmatic JMS\n4. Karate\n\n## Start BFF Server\nThis will start the springBoot BFF server\n\n- On Unix and Windows Powershell, please run:\n```shell\n./gradlew bootRun\n```\n\n- On Windows Command Prompt, please run:\n```shell\ngradlew bootRun\n```\n\nAccess find orders api at http://localhost:8080/findAvailableProducts\n_*Note:* Unless domain api service is running on port 9000 and JMS is set up, above requests will fail.\n\n## Run Tests\nThis will start the specmatic mock server for domain api using the information in specmatic.json and run the karate tests that expects the domain api at port 9000.\n\n- On Unix and Windows Powershell, please run: \n```shell\n./gradlew test\n```\n\n- On Windows Command Prompt, please run:\n```shell\ngradlew test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspecmatic%2Fspecmatic-order-bff-jms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspecmatic%2Fspecmatic-order-bff-jms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspecmatic%2Fspecmatic-order-bff-jms/lists"}