Skip to content

manifold-systems/manifold-sample-rest-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

manifold-sample-rest-api

A sample REST API application using Manifold JSON Schema and SparkJava.

Notable:

  • Demonstrates API-first and single source of truth solely with JSON Schema. No code gen step!, no POJOs, no annotations.
  • A REST API server with SparkJava is a natural fit with Manifold's JSON support as defined in UserServer
  • REST API client code is made simple as illustrated in the UserClient class
  • Rich development experience. With Manifold's IntelliJ IDEA plugin you can rapidly develop REST APIs with JSON Schema. Quickly navigate between JSON Schema files and usages in your code, refactor, find usages, code completion, incremental compilation, etc. All without the burden of a code generation step or maintaining POJOs -- your JSON Schema API files are your API!

Usage

IntelliJ IDEA

Manifold is best experienced in IntelliJ IDEA.

  • Install the Manifold IntelliJ plugin directly from IntelliJ IDEA:

    SettingsPluginsBrowse repositories ➜ search: Manifold

  • Close and relaunch IDEA

  • Open this project: manifold-sample-rest-api

  • Be sure to setup an SDK for Java 11:

    Project StructureSDKs+JDK

  • Or change the pom.xml file to use a JDK of your choosing, Manifold fully supports Java 8 - 13

Running the UserServer

  • Run the restapi.UserServer class directly with Java
  • or load this project in IntelliJ and run the restapi.UserServer class
  • Launch a browser and go to http://localhost:4567/Users to see the JSON results for all Users
  • Run the restapi.UserServerTest

Running the UserClient

  • The restapi.UserClient is a simple client to illustrate basic client API code with the request() API method.

About

A sample REST API application demonstrating "single source of truth" with Manifold JSON Schema and SparkJava

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages