首页 > 其他分享 >关于《Building a GraphQL service》的尝试

关于《Building a GraphQL service》的尝试

时间:2023-05-25 11:36:24浏览次数:33  
标签:Building String service author public Book GraphQL import id

 

 以下是实现代码

package com.example.graphqlserver;

import java.util.Arrays;
import java.util.List;

public record Author (String id, String firstName, String lastName) {

    private static List<Author> authors = Arrays.asList(
            new Author("author-1", "Joshua", "Bloch"),
            new Author("author-2", "Douglas", "Adams"),
            new Author("author-3", "Bill", "Bryson")
    );

    public static Author getById(String id) {
        return authors.stream()
                .filter(author -> author.id().equals(id))
                .findFirst()
                .orElse(null);
    }
}
package com.example.graphqlserver;

import java.util.Arrays;
import java.util.List;

public record Book (String id, String name, int pageCount, String authorId) {

    private static List<Book> books = Arrays.asList(
            new Book("book-1", "Effective Java", 416, "author-1"),
            new Book("book-2", "Hitchhiker's Guide to the Galaxy", 208, "author-2"),
            new Book("book-3", "Down Under", 436, "author-3")
    );

    public static Book getById(String id) {
        return books.stream()
                .filter(book -> book.id().equals(id))
                .findFirst()
                .orElse(null);
    }
}
package com.example.graphqlserver;

import org.springframework.graphql.data.method.annotation.Argument;
import org.springframework.graphql.data.method.annotation.QueryMapping;
import org.springframework.graphql.data.method.annotation.SchemaMapping;
import org.springframework.stereotype.Controller;

@Controller
public class BookController {
    @QueryMapping
    public Book bookById(@Argument String id) {
        return Book.getById(id);
    }

    @SchemaMapping
    public Author author(Book book) {
        return Author.getById(book.authorId());
    }
}
package com.example.graphqlserver;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class GraphqlServerApplication {

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

}

 

标签:Building,String,service,author,public,Book,GraphQL,import,id
From: https://www.cnblogs.com/zyz-hhh/p/17430632.html

相关文章

  • mysql is neither service nor target!?(suse12 sp5)
    今天想在自己的Suse虚拟机上安装mysql,安装好了并且初始化之后,一直无法启动mysql.cp/data/mysql/support-files/mysql.server/etc/init.d/mysqldchmod+x/etc/init.d/mysqldchkconfig--level35mysqldonchkconfig--addmysqldchkconfig--list1.servicemysqlstart;......
  • 旧知识:soap、webservice、wcf
    SOAP、webservice、WCFSOAP(SimpleObjectAccessProtocol,简单对象访问协议),是基于XML的简易协议,可使应用程序在HTTP之上进行信息交换。一条SOAP消息就是一个普通的XML文档。总之,HTTP+XML=SOAP,它就是用于系统间数据通信的,特点就是接口的数据传输格式必须是XML而已......
  • 3d打印机添加AI炒面检测服务 klipper+fluidd ubuntu本地部署TheSpaghttiDetective Ser
    炒面检测(TheSpaghettiDetective)介绍:炒面检测服务可以借助打印机的摄像头,检测打印是否炒面(打印失败)并作出提醒或停止打印的一种服务,该服务由服务器和客户端组成客户端支持两种: ocoprint或klipper服务器也有两种:ocobi官方提供的有限免费服务......
  • Android 单独Process 的 Service 触发 Application的构造
    今天在使用单独Process的Service(android:process,如果没有此attr就不会)时,发现该Serivce的启动会使得AndroidManifest中包裹此Service的Application再构造一个出来,想了想也合理,因为每个Application都对应一个Process,那么对于单独Process的service来说,是一个新进程,那么是需要构造出......
  • Building MiniGUI 4.0
    PrerequisitesStepsCommandstobuilddependenciesCrossBuildingChangeLogCopyingSpecialStatementOtherNotesThisrepocontainssomescriptsanddependenciestobuildMiniGUI4.0.xThisinstructionassumesthatyouareusingUbuntuLinux16.04L......
  • Nginx_启动时报错:Job for nginx.service failed because the control process exited
    一、报错如下Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode.See"systemctlstatusnginx.service"and"journalctl-xe"fordetails.123二、解决原因1、先检查nginx配置文件正否正确输入nginx-t命令,如果反回successful表示配置文件......
  • web Service实践——Xfire的ws-security用户名和密码安全验证
    一、参照《WebService实践之——XFire实例》(本空间的文章)建立一个Xfire的应用;二、引入的jar包:xfire-1.2.6的所有jar包(包括xfire-all-1.2.6.jar),下载地址:http://xfire.codehaus.org/Downloadwss4j-1.5.8.jar:下载地址:http://ws.apache.org/wss4j/三、服务器端1、PasswordHandler类,继......
  • Graphql(五)Apollo 文件传输
    本文介绍如何在ApolloGraphQL中实现文件的传输文件传输在GrapqhQL中官方建议文章ApolloServerFileUploadBestPractices提及了实现文件上传的几种方式,分别是:SignedURLsUsinganimageuploadserviceMultipartUploadRequests本文介绍我所尝试过的第一种和第三种。......
  • Google Earth Engine(GEE)——全球建筑物数据集(MSBuildings数据集)包含微软7.77忆建筑物
    全球ML建筑脚印必应地图正在发布全球范围内的公开建筑脚印。我们从2014年至2021年的Bing地图图像中检测到777M的建筑,包括Maxar和Airbus的图像。为了完整起见,早期发布的数据集也包括在这个数据集中,并被纳入其中。你可以在这里找到Githubrepo和关于方法的更多信息。数据集是压缩的,......
  • proto中service 作用的理解
    转载请注明出处:在proto文件中,service用于定义一组RPC方法,在服务端实现这些方法,并在客户端调用这些方法进行远程过程调用。service的定义方式如下:serviceMyService{rpcMyMethod(MyRequest)returns(MyResponse);}其中,MyService是服务的名称,MyMeth......