Fuseki Embedded Server

构建Fuseki Server

添加maven依赖

我用的版本是3.14.0, 而最新的4.1.0则需要更高的JDK版本(我的JDK仍是1.8).

<dependency>
  <groupId>org.apache.jena</groupId>
  <artifactId>jena-fuseki-main</artifactId>
  <version>3.x.y</version> <!-- Set the version -->
</dependency>

Java代码构建Fuseki服务

数据库是TDB

Dataset ds = TDBFactory.createDatasetGraph(directory);
FusekiServer server = FusekiServer.create()
    .port(3332)
    .add("/XXX", ds, true)
    .build() ;

Fuseki 使用

由于是在Java代码内嵌的Fuseki server, 没有UI, 那么我们该如何使用?

Postman

注意:

  1. 这里的"XXX"是与上节代码中的参数一致
  2. 使用"POST"方式
  3. Body中需要使用"x-www-form-urlencoded"
    在这里插入图片描述

Springboot + OpenFeign

OpenFeign encoder

<dependency>
	<groupId>io.github.openfeign.form</groupId>
	<artifactId>feign-form</artifactId>
	<version>3.8.0</version>
</dependency>

OpenFeign Headers

@Headers("Content-Type: application/x-www-form-urlencoded")

OpenFeign 参数

必须是@Param(“query”)

Object query(@Param("query") String query);

Code

  1. client 定义
import feign.Headers;
import feign.Param;
import feign.RequestLine;

public interface FusekiClient {
    
    
    @RequestLine("POST /BF/query")
    @Headers("Content-Type: application/x-www-form-urlencoded")
    Object query(@Param("query") String query);
}

  1. 构建
    @Bean
    public FusekiClient FusekiServerClient(@Value("${service.fuseki.url}") String fusekiService) {
    
    
        return Feign.builder()
                .decoder(new JacksonDecoder())
                .encoder(new FormEncoder())
                .target(FusekiClient.class, fusekiService);
    }

猜你喜欢

转载自blog.csdn.net/rosemary512/article/details/118417184