以下是实现代码
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