Package com.inrupt.client.spi
Service interfaces for the Inrupt Java Client Libraries.
This module provides a pluggable service provider interface, which allows the HTTP, JSON, and RDF services to be used with any concrete implementation.
One can make use of available implementation such as:
- for HTTP processing:
OkHttpService
or theHttpClientService
; - for JSON processing:
JsonbService
or theJacksonService
; - for RDF processing:
JenaService
or theRDF4JService
.
To make use of a concrete implementation make sure, first, to add the needed modules to the pom of your module. Example:
<dependency> <groupId>com.inrupt</groupId> <artifactId>inrupt-client-xxxConcreteImplementationNamexxx</artifactId> <version>${project.version}</version> </dependency>
Example of using the HTTP service send() method to request the Solid logo:
HttpService client = ServiceProvider.getHttpService();
Request request = Request.newBuilder()
.uri("https://example.example/solid.png")
.GET()
.build();
Response<byte[]> response = client.send(request, Response.BodyHandlers.ofByteArray())
.toCompletableFuture().join();
System.out.println("HTTP status code: " + response.statusCode());
System.out.println("Response uri: " + response.uri());
System.out.println("Content type: " + response.headers().get("Content-Type"));
Example of using the JSON processor fromJson() method to read a custom type:
JsonService service = ServiceProvider.getJsonService();
try (InputStream is = Test.class.getResourceAsStream("customType.json")) {
CustomType obj = service.fromJson(is, CustomType.class);
System.out.println("The CustomType Id is: " + obj.id);
}
Example of using the RDF service toDataset() method to read triples
from a trig file into a org.apache.commons.rdf.api.Dataset
:
RdfService processor = ServiceProvider.getRdfService();
Dataset dataset;
try (InputStream input = Test.class.getResourceAsStream("/oneTriple.trig")) {
dataset = processor.toDataset(RDFSyntax.TRIG, input);
}
System.out.println("Number of triples in file: " + dataset.size());
-
Interface Summary Interface Description AuthenticationProvider An authentication mechanism that knows how to authenticate over network connections.CacheBuilderService A cache builder abstraction for use with different cache implementations.DpopService A DPoP management abstraction.HeaderParser A parser interface for handling HTTP header parsers.HttpService An HTTP handling abstraction.JsonService A JSON handling abstraction.RdfService A generic abstraction for interacting with different underlying RDF libraries. -
Class Summary Class Description ClientProviderResolver An abstraction that loads the availableClient
from, the classpath.RDFFactory A RDF commons handling abstraction.ServiceProvider This is the class used to access data processors for the Inrupt Java Client Libraries libraries.