{"id":20115007,"url":"https://github.com/nikos/rest-independent-models","last_synced_at":"2026-05-06T19:40:23.948Z","repository":{"id":145419997,"uuid":"120226975","full_name":"nikos/rest-independent-models","owner":"nikos","description":"Sample project to demonstrate data model independence between REST client and server (using Spring Boot).","archived":false,"fork":false,"pushed_at":"2018-02-05T23:48:33.000Z","size":67,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-13T06:22:22.125Z","etag":null,"topics":["bdd","best-practices","data-model","lombok","mocking","mockito","model","rest-client","rest-server","restful-api","sharing-data","spring-boot","spring-mvc","spring-test"],"latest_commit_sha":null,"homepage":"","language":"Java","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/nikos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2018-02-04T21:56:45.000Z","updated_at":"2018-02-04T22:44:57.000Z","dependencies_parsed_at":"2023-06-03T17:45:21.596Z","dependency_job_id":null,"html_url":"https://github.com/nikos/rest-independent-models","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikos%2Frest-independent-models","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikos%2Frest-independent-models/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikos%2Frest-independent-models/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikos%2Frest-independent-models/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nikos","download_url":"https://codeload.github.com/nikos/rest-independent-models/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241557166,"owners_count":19981881,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bdd","best-practices","data-model","lombok","mocking","mockito","model","rest-client","rest-server","restful-api","sharing-data","spring-boot","spring-mvc","spring-test"],"created_at":"2024-11-13T18:33:29.082Z","updated_at":"2026-05-06T19:40:18.905Z","avatar_url":"https://github.com/nikos.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \"Share Nothing\" [![Build Status](https://travis-ci.org/nikos/rest-independent-models.svg?branch=master)](https://travis-ci.org/nikos/rest-independent-models)\n\nThis project demonstrates how you can build two parties (micro-services)\nsharing a common data model without sharing code, and therefore only\nbuild a loose coupling and avoiding a code dependency between them.\n\nEach side defines an own model (here of a customer) which is transferred\nusing JSON. To illustrate point the customer model has on the client\nside an additional attribute (birth date), which does not exist in the\ndata model on the server side.\n\nBeing independent in regards to common code is considered a great\nbenefit when it comes to deploying each module resp. building\ndistinct continuous deploy pipelines, without requiring\nthe other project to be rolled out at the same time.\n\nFor further discussion, read for example an interview with Sam Newman\nabout [Sharing Code](https://samnewman.io/blog/2015/06/22/answering-questions-from-devoxx-on-microservices/)\n\n\n## Getting Started\n\nThese instructions will get you a copy of the project up and running\non your local machine for development and testing purposes.\n\n### Prerequisites\n\nTo build and run the sample projects you require only a JDK of version 8.\n\n\n## Running the tests\n\nTo run the automated tests for the client and server demo projects\nplease follow the instructions below.\n\n### Break down into end to end tests\n\nFor building and testing you can use the following maven commands:\n\n```\ncd client\n./mvnw clean package\n```\n\nSame goes for the server side, from the root project directory execute:\n\n```\ncd server\n./mvnw clean package\n```\n\n\n\n### Run end-to-end integration test\n\nThe integration tests require a running instance of the server.\nTo start-up the Spring Boot based web application execute:\n\n```\ncd server\n./mvnw spring-boot:run\n```\n\nBy default this will start an Spring Boot web application on port 8081.\nIn a separate terminal start the client side integration tests with:\n\n```\ncd client\n./mvnw test -Dtest-group=cdc-tests\n```\n\n\n## Built With\n\n* [Spring Boot](https://projects.spring.io/spring-boot/) - The web framework used\n* [Spring REST Docs](https://docs.spring.io/spring-restdocs/docs/current/reference/html5/) - Spring REST Docs for testing and creating documentation\n* [Lombok](https://projectlombok.org/) - Avoid boiler-plate code\n* [Maven](https://maven.apache.org/) - Dependency Management of libraries\n\n\n## Authors\n\n* **Niko Schmuck** - *Initial work* - [nikos](https://github.com/nikos)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikos%2Frest-independent-models","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnikos%2Frest-independent-models","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikos%2Frest-independent-models/lists"}