java - 带有 Spring Boot Java Validation 类型错误的 FieldUndefined 的 GraphQL
问题描述
我是 GraphQL 的新手,正在创建一个实体并通过属性获取该实体的实例。该实体名为 UserProfile,我为其定义了如下架构:
type UserProfile{
id:String!
username:String!
// A huge list of other attributes
}
type Query {
getUserProfile(username:String!):UserProfile!
}
type Mutation {
addUserProfile(username:String!):Boolean!
}
我还为它定义了控制器,分别为 Query 和 Mutation 类型实现了 GraphQLQueryResolver 和 GraphQLMutationResolver。他们的代码是:
@Component
public class UserProfileGraphQLMutationController implements GraphQLMutationResolver {
private static final Logger logger = LoggerFactory.getLogger(UserController.class);
@Autowired
private UserProfileRepository userProfileRepository;
@Autowired
private UserRepository userRepository;
@Transactional
public Boolean addUserProfile(String username) {
logger.info("Searching for user: "+username);
User user = userRepository.findByUsername(username);
UserProfile userProfile = new UserProfile();
// Setting fields to null or blanks here
userProfile.setUsername(username);
UserProfile savedUserProfile = userProfileRepository.insert(userProfile);
URI uri = ServletUriComponentsBuilder.fromCurrentRequest().path("/users/{username}").buildAndExpand(savedUserProfile.getUsername()).toUri();
ResponseEntity obj = ResponseEntity.created(uri).build();
return obj.getStatusCode().equals("200");
}
}
@Component
public class UserProfileGraphQLController implements GraphQLQueryResolver {
private static final Logger logger = LoggerFactory.getLogger(UserController.class);
@Autowired
private UserRepository userRepository;
@Autowired
private UserProfileRepository userProfileRepository;
@Transactional
public UserProfile getUserProfile(String username) {
logger.info("Fetching Profile for User: "+username);
return userProfileRepository.findByUsername(username);
}
}
但是,当我尝试使用邮递员查询它时,我收到 fieldUndefined 错误。我可以对应用程序中的其他实体使用类似的查询和突变。我用来创建它们的突变和查询是:
mutation {
addUserProfile(username:"MummyGupta")
}
query {
getUserProfile(username:"MummyGupta"){
username
posts
}
}
接收中的错误是:
- "message": "FieldUndefined 类型的验证错误:'Query' 类型中的字段 'getUserProfile' 未定义@'getUserProfile'",
- "description": "'Query' 类型中的字段 'getUserProfile' 未定义",
- "validationErrorType": "FieldUndefined",
- “queryPath”:[“getUserProfile”],
- "errorType": "验证错误",
- “路径”:空,
- “扩展”:空
我想知道我做错了什么或错过了什么。感谢您阅读本文并尝试提前解决它!
解决方案
推荐阅读
- android - 在片段中隐藏工具栏会导致闪烁
- python - 如何使用 pathlib.Path 对象模拟文件大小?
- c++ - 在 C++ 中使用 sort 从第二个字符到最后一个字符对字符串进行排序
- python - 按列 pandas 分组的水平条形图
- c - 是否有 C 编译器标志来检查函数修改的输入参数?
- docker - Docker 无法从现有存储库连接和拉取图像
- android - 在 Robolectric/Espresso 测试中避免睡觉
- java - 无法在java中读取资源
- javascript - 我想在 JavaScript 的克隆方法中更改标签值
- html - Container full rest height with scrollable content (Tailwind)