如何在 Apollo Client 的 gql 查询中定义类型?
How can I define type in gql query in Apollo Client?
我的 Apollo Server 有如下定义。
input MinMax{
min:Float
max:Float
}
input ScreenerInput{
fy:Int!
quarter:Int!
ltp:MinMax
eps:MinMax
pe:MinMax
netWorth:MinMax
paidUp:MinMax
reserve:MinMax
netProfit:MinMax
}
如何在 Apollo 客户端中定义 MinMax
类型以发送 MinMax
类型的变量。到目前为止,我只做标量类型,所以我的查询很简单。
我的查询类型是screeenedCompanies(criteria:ScreenerInput!):[ScreenedCompanies]
如果我像下面这样直接查询就可以了。
{
screeenedCompanies(criteria:{
fy:2075
quarter:2
eps:{
min:30
max:40
}
}){
sector
symbol
}
}
我想要的是这样查询,这样就可以改变变量
query getScreenedCompanies($criteria:<What type should be here ?>){
{
screeenedCompanies(criteria:$criteria){
sector
symbol
}
}
}
输入 ScreenerInput
后,我的查询如下所示
query getScreenedCompanies($criteria:ScreenerInput!){
screeenedCompanies(criteria:$criteria){
sector
symbol
}
}
我在 apolloplayground 中的变量如下所示
{
"criteria": {
"fy": 2075
"quarter": 4
"ltp": {
"min": 345
"max": 400
}
}
}
我收到以下错误
"error": {
"errors": [
{
"message": "Variable \"$criteria\" of required type \"ScreenerInput!\" was not provided."
它的工作方式与 GQL
中的任何标量类型相同。只需使用与服务器上相同的输入名称来定义它们(如 MinMax
或 ScreenerInput
在您的情况下)。你不需要在客户端描述它的形状,服务器会为你验证它:)
如果需要参数,请不要忘记添加感叹号 !
。
我的 Apollo Server 有如下定义。
input MinMax{
min:Float
max:Float
}
input ScreenerInput{
fy:Int!
quarter:Int!
ltp:MinMax
eps:MinMax
pe:MinMax
netWorth:MinMax
paidUp:MinMax
reserve:MinMax
netProfit:MinMax
}
如何在 Apollo 客户端中定义 MinMax
类型以发送 MinMax
类型的变量。到目前为止,我只做标量类型,所以我的查询很简单。
我的查询类型是screeenedCompanies(criteria:ScreenerInput!):[ScreenedCompanies]
如果我像下面这样直接查询就可以了。
{
screeenedCompanies(criteria:{
fy:2075
quarter:2
eps:{
min:30
max:40
}
}){
sector
symbol
}
}
我想要的是这样查询,这样就可以改变变量
query getScreenedCompanies($criteria:<What type should be here ?>){
{
screeenedCompanies(criteria:$criteria){
sector
symbol
}
}
}
输入 ScreenerInput
后,我的查询如下所示
query getScreenedCompanies($criteria:ScreenerInput!){
screeenedCompanies(criteria:$criteria){
sector
symbol
}
}
我在 apolloplayground 中的变量如下所示
{
"criteria": {
"fy": 2075
"quarter": 4
"ltp": {
"min": 345
"max": 400
}
}
}
我收到以下错误
"error": {
"errors": [
{
"message": "Variable \"$criteria\" of required type \"ScreenerInput!\" was not provided."
它的工作方式与 GQL
中的任何标量类型相同。只需使用与服务器上相同的输入名称来定义它们(如 MinMax
或 ScreenerInput
在您的情况下)。你不需要在客户端描述它的形状,服务器会为你验证它:)
如果需要参数,请不要忘记添加感叹号 !
。