DotWebStack Frontend - OpenAPI

An extensible full-stack framework which offers the foundation and building blocks for developing (Linked) Data services, including URI dereferencing, RESTful API’s, and much more.

License

License

GroupId

GroupId

org.dotwebstack.framework
ArtifactId

ArtifactId

dotwebstack-frontend-openapi
Last Version

Last Version

0.1.11
Release Date

Release Date

Type

Type

jar
Description

Description

DotWebStack Frontend - OpenAPI
An extensible full-stack framework which offers the foundation and building blocks for developing (Linked) Data services, including URI dereferencing, RESTful API’s, and much more.
Project Organization

Project Organization

DotWebStack

Download dotwebstack-frontend-openapi

How to add to project

<!-- https://jarcasting.com/artifacts/org.dotwebstack.framework/dotwebstack-frontend-openapi/ -->
<dependency>
    <groupId>org.dotwebstack.framework</groupId>
    <artifactId>dotwebstack-frontend-openapi</artifactId>
    <version>0.1.11</version>
</dependency>
// https://jarcasting.com/artifacts/org.dotwebstack.framework/dotwebstack-frontend-openapi/
implementation 'org.dotwebstack.framework:dotwebstack-frontend-openapi:0.1.11'
// https://jarcasting.com/artifacts/org.dotwebstack.framework/dotwebstack-frontend-openapi/
implementation ("org.dotwebstack.framework:dotwebstack-frontend-openapi:0.1.11")
'org.dotwebstack.framework:dotwebstack-frontend-openapi:jar:0.1.11'
<dependency org="org.dotwebstack.framework" name="dotwebstack-frontend-openapi" rev="0.1.11">
  <artifact name="dotwebstack-frontend-openapi" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.dotwebstack.framework', module='dotwebstack-frontend-openapi', version='0.1.11')
)
libraryDependencies += "org.dotwebstack.framework" % "dotwebstack-frontend-openapi" % "0.1.11"
[org.dotwebstack.framework/dotwebstack-frontend-openapi "0.1.11"]

Dependencies

compile (11)

Group / Artifact Type Version
org.dotwebstack.framework : dotwebstack-core jar 0.1.11
org.dotwebstack.framework : dotwebstack-frontend-http jar 0.1.11
org.slf4j : slf4j-api jar
io.swagger.parser.v3 : swagger-parser-v3 jar 2.0.5
com.atlassian.oai : swagger-request-validator-core jar 2.0.0
io.swagger : swagger-core jar 1.5.3
org.apache.commons : commons-lang3 jar 3.7
org.apache.marmotta : ldpath-api jar 3.4.0
org.apache.marmotta : ldpath-core jar 3.4.0
org.apache.marmotta : ldpath-functions-text jar 3.4.0
com.taxonic.carml : carml-engine jar 0.2.1

test (9)

Group / Artifact Type Version
org.dotwebstack.framework : dotwebstack-test jar 0.1.11
org.junit.jupiter : junit-jupiter-engine jar 5.2.0
org.junit.jupiter : junit-jupiter-api jar 5.2.0
org.junit.jupiter : junit-jupiter-params jar 5.2.0
org.junit.vintage : junit-vintage-engine jar 5.2.0
org.mockito : mockito-core jar 2.23.0
org.hamcrest : hamcrest-library jar 1.3
org.slf4j : slf4j-nop jar 1.7.25
org.skyscreamer : jsonassert jar 1.5.0

Project Modules

There are no modules declared in this project.

DotWebStack Framework

An extensible full-stack framework which offers the foundation and building blocks for developing (Linked) Data services, including URI dereferencing, RESTful API’s, and much more.

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.

org.dotwebstack.framework

DotWebStack

Publishing on the web made easy.

Versions

Version
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.0.47
0.0.46
0.0.45
0.0.44
0.0.43
0.0.42
0.0.41
0.0.40
0.0.39
0.0.38
0.0.37
0.0.36
0.0.35
0.0.34
0.0.32
0.0.30
0.0.29
0.0.28
0.0.27
0.0.25
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6