{"id":25510524,"url":"https://github.com/manifold-systems/manifold-sample-rest-api","last_synced_at":"2025-04-10T15:52:07.014Z","repository":{"id":110992965,"uuid":"171042487","full_name":"manifold-systems/manifold-sample-rest-api","owner":"manifold-systems","description":"A sample REST API application demonstrating \"single source of truth\" with Manifold JSON Schema and SparkJava","archived":false,"fork":false,"pushed_at":"2024-07-11T02:27:29.000Z","size":41,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T13:37:29.144Z","etag":null,"topics":["intellij","java","json-schema","manifold","manifold-systems","sparkjava"],"latest_commit_sha":null,"homepage":"http://manifold.systems/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manifold-systems.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":"2019-02-16T19:23:01.000Z","updated_at":"2025-01-19T11:29:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"fd3a5ab1-32a3-4faf-a99b-6931e771e8c5","html_url":"https://github.com/manifold-systems/manifold-sample-rest-api","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/manifold-systems%2Fmanifold-sample-rest-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manifold-systems%2Fmanifold-sample-rest-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manifold-systems%2Fmanifold-sample-rest-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manifold-systems%2Fmanifold-sample-rest-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manifold-systems","download_url":"https://codeload.github.com/manifold-systems/manifold-sample-rest-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248245324,"owners_count":21071458,"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":["intellij","java","json-schema","manifold","manifold-systems","sparkjava"],"created_at":"2025-02-19T09:51:00.788Z","updated_at":"2025-04-10T15:52:06.989Z","avatar_url":"https://github.com/manifold-systems.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# manifold-sample-rest-api\n\nA sample REST API application using [Manifold JSON Schema](http://manifold.systems/docs.html#json-and-json-schema) and\n[SparkJava](http://sparkjava.com/).\n\nNotable:\n* Demonstrates **API-first** and **single source of truth** solely with JSON Schema. **No code gen step!**, no POJOs, no annotations.\n* A **REST API server** with SparkJava is a natural fit with Manifold's JSON support as defined in `UserServer`\n* **REST API client** code is made simple as illustrated in the `UserClient` class\n* **Rich development experience**. With Manifold's IntelliJ IDEA plugin you can rapidly develop REST APIs with JSON\nSchema. Quickly navigate between JSON Schema files and usages in your code, refactor, find usages, code completion,\nincremental compilation, etc. All without the burden of a code generation step or maintaining POJOs -- your JSON Schema\nAPI files *are* your API!\n\n## Usage\n\n### IntelliJ IDEA\nManifold is best experienced in [IntelliJ IDEA](https://www.jetbrains.com/idea/download/).\n* Install the Manifold IntelliJ plugin directly from IntelliJ IDEA:\n\n   \u003ckbd\u003eSettings\u003c/kbd\u003e ➜ \u003ckbd\u003ePlugins\u003c/kbd\u003e ➜ \u003ckbd\u003eBrowse repositories\u003c/kbd\u003e ➜ search: `Manifold`\n\n* Close and relaunch IDEA\n* Open this project: `manifold-sample-rest-api`\n* Be sure to setup an SDK for \u003cb\u003eJava 11\u003c/b\u003e:\n\n  \u003ckbd\u003eProject Structure\u003c/kbd\u003e ➜ \u003ckbd\u003eSDKs\u003c/kbd\u003e ➜ \u003ckbd\u003e+\u003c/kbd\u003e ➜ \u003ckbd\u003eJDK\u003c/kbd\u003e\n* Or change the `pom.xml` file to use a JDK of your choosing, Manifold fully supports Java 8 - 13\n\n### Running the `UserServer`\n* Run the `restapi.UserServer` class directly with Java\n* _or_ load this project in IntelliJ and run the `restapi.UserServer` class\n* Launch a browser and go to `http://localhost:4567/Users` to see the JSON results for all Users\n* Run the `restapi.UserServerTest`\n\n### Running the `UserClient`\n* The `restapi.UserClient` is a simple client to illustrate basic client API code with the `request()` API method.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanifold-systems%2Fmanifold-sample-rest-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanifold-systems%2Fmanifold-sample-rest-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanifold-systems%2Fmanifold-sample-rest-api/lists"}