Skip to content

Latest commit

 

History

History
69 lines (53 loc) · 3.14 KB

README.md

File metadata and controls

69 lines (53 loc) · 3.14 KB

DotWebStack Framework

An extensible full-stack framework which offers the foundation and building blocks for developing RESTful API’s.

Build Status Maven Central Quality Gate Status Coverage

Getting started

To get started with DotWebStack, create a new Spring project and add dependencies to one or more of the service modules, one or more of the backend modules and spring-boot-starter-webflux. In maven this would look something like this:

<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-webflux</artifactId>
  </dependency>
  <dependency>
    <groupId>org.dotwebstack.framework</groupId>
    <artifactId>backend-rdf4j</artifactId>
  </dependency>
  <dependency>
    <groupId>org.dotwebstack.framework</groupId>
    <artifactId>service-graphql</artifactId>
  </dependency>
</dependencies>

You then need to add a Spring application with a component scan on the org.dotwebstack.framework package:

@SpringBootApplication
@ComponentScan("org.dotwebstack.framework")
public class ExampleApplication {

  public static void main(String[] args) {
    SpringApplication.run(ExampleApplication.class, args);
  }
}

In the resource folder, there should be a properties file (application.yml) and a config folder. The config folder contains a GraphQL schema file (schema.graphqls) and adapter files for the specific service and backend. The service adapter files contain the mapping rules to get from a request for a specific service to the GraphQL core and back from the GraphQL core to a response for a specific service. The backend adapter files are defined in a folder called model and contain the rules to generate a backend specific query from GraphQL and read a GraphQL result from the query response. See the specific service and backend modules to find out how to configure them.

Links

TODO

  • Global configuration for namespaces
  • Validate SHACL shapes against GraphQL schema
  • Decide whether to use property shape names for GraphQL schema mapping
  • Combine query results from multiple backends
  • Naming consistency: iri vs uri

License

The DotWebStack Framework is published under the MIT License.