该继电器的文档包含此片段:
query RebelsRefetchQuery {
node(id: "RmFjdGlvbjox") {
id
... on Faction {
name
}
}
}
Run Code Online (Sandbox Code Playgroud)
这... on Faction对语法有何意义?
我必须从头开始一个新的(web + native)项目(中型应用程序).由于过去几年里有过多的JS框架和实现,我对我平常的堆栈有了第二个疑问.
我一直在前端使用react + redux,后端使用Node和MongoDB通过REST API进行通信.
对于这个新项目,我决定使用React-Native + React Native for Web + Node + PostgreSQL.但是,我想知道我应该使用哪个框架来进行数据获取和状态/存储管理.
到目前为止,redux很适合我.但是,由于JS演变的本质.我对我过去使用过的堆栈持怀疑态度.
如果我使用下面的堆栈,有什么优缺点
React-Native + React-Native-For-Web + Redux + GraphQL + Node + PostgreSQL
React-Native + React-Native-For-Web + Relay + GraphQL + Node + PostgreSQL
React-Native + React-Native-For-Web + Apollo + GraphQL + Node + PostgreSQL
Run Code Online (Sandbox Code Playgroud)
我已经阅读了许多文章,说明使用每个框架的好处,但内容和文章的数量有点可怕.我明白没有正确或错误的答案.但是,很高兴知道上面提到的堆栈很好地记在一起 - 更少的学习曲线,良好的文档,可维护性,更少的变通方法.
在GraphQL中,您可以编写类似这样的内容来定义查询:
const USER_QUERY = gql`
{
user(id: 2) {
name
}
}
`
Run Code Online (Sandbox Code Playgroud)
在样式化组件中,您可以像这样定义样式化组件:
const Button = styled.button`
background-color: papayawhip;
`
Run Code Online (Sandbox Code Playgroud)
这是什么语法?我知道使用模板文字你可以使用这种语法来修改变量:${foo}但是我从未见过使用它.任何指导将不胜感激.
javascript ecmascript-6 graphql template-literals styled-components
我需要一个graphql客户端lib 来运行node.js进行一些测试和一些数据混搭 - 而不是生产能力.我在其他地方使用阿波罗(react-apollo阿波罗graphql-server-express).我的需求非常简单.
是apollo-client一个可行的选择吗?我找不到关于在节点上使用它的示例或文档 - 如果您知道任何,请分享.
或者我应该/可以在节点上使用参考graphql客户端?
我在职业生涯中使用过OData很多,现在很少有来自不同团队的同事建议我们转向JsonAPI和GraphQL,因为它与微软无关.我对这两种查询语言都没有多少经验.据我所知,OData是Salesforce,IBM,Microsoft使用的标准,它非常成熟.为什么要切换到JsonAPI和/或GraphQL?有真正的好处吗?JsonAPI和GraphQL是新标准吗?基于流行度改变公共api实现似乎毫无用处,尤其是在没有大的好处时.
有人可以赐教吗?
我使用 Postman 从服务器获取数据,当我使用 REST 调用时,它是 GET 请求,但当我使用 GraphQL API 调用时,它需要是 POST 请求。为什么会这样呢?
在 ASP.NET core 5 应用程序中,我将 GraphQL 与 GraphQL.SystemTextJson 结合使用。当我尝试返回结果时,出现 System.NotSupportedException,提示“不支持‘System.Type’实例的序列化和反序列化,应该避免,因为它们可能会导致安全问题。”。
我怀疑 DocumentWriter 的配置中缺少某些内容。
在ConfigureServices中是这样配置的:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
...
services.AddScoped<IDocumentWriter, DocumentWriter>();
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
更新:
为了完整起见,按照@AndrewSilver的要求,我报告了整个代码(改编自https://www.red-gate.com/simple-talk/dotnet/net-development/building-and-consuming-graphql-api-in -asp-net-core-3-1/并移植到 .net core 5.0)。
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { …Run Code Online (Sandbox Code Playgroud) 假设您有一个将数据发布到API服务器的表单.API服务器验证输入并返回JSON对象.如果输入无效,则返回如下所示的错误对象.
{errors: {field1: "is required"}}
Run Code Online (Sandbox Code Playgroud)
使用GraphQL时,我们如何处理和提供这些错误?应该如何以及在何处实施数据验证(应该是GraphQL的一部分还是应该在每个解析函数中)?
假设我有以下 json 数据:
"data": {
"continents": [
{
"code": "AF",
"name": "Africa",
},
{
"code": "EU",
"name": "Europe"
},
// ...
]
}
Run Code Online (Sandbox Code Playgroud)
使用以下命令获取列表项的正确 GraphQL 查询是什么: code : "AF"?换句话说,如何产生以下结果:
"data": {
"code": "AF",
"name": "Africa"
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有:
query {
continents {
code
name
}
}
Run Code Online (Sandbox Code Playgroud)
但这只是返回完整的数组。
我一直在以下位置运行我的示例: https: //lucasconstantino.github.io/graphiql-online/
graphql ×10
relayjs ×3
apollostack ×1
asp.net-core ×1
ecmascript-6 ×1
javascript ×1
json-api ×1
odata ×1
postman ×1
react-native ×1
reactjs ×1
redux ×1
validation ×1