首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用Node.js创建安全的 GraphQL API

同时它也是开源的,通常会与REST和其他架构放在一起进行比较。简而言之,它基于: GraphQL查询 —— 允许客户端进行读取和控制接收数据的方式。...": "^4.16.1", 14 "@types/express-graphql": "^0.6.2", 15 "@types/graphql": "^14.0.7", 16 "express...为了开始我们的项目,将添加三个基本的导入: Express Express-graphql Graphql-tools 把它们放在一起: 1 import express from 'express';...下一步是在Express中处理我们的程序和基本的GraphQL配置,例如: 1 import express from 'express'; 2 import graphqlHTTP from 'express-graphql...总结和最后的想法 让我们回顾一下本文的内容: 在Node.js下可以通过ExpressGraphQL库来构建GraphQL API; 基本的GraphQL使用; 查询和修改的基本用法; 为项目创建模块的基本方法

1.6K30
您找到你想要的搜索结果了吗?
是的
没有找到

干货 | 携程机票Node.js开发实践

走得最慢的人,只要他丧失目标,也比漫无目的地徘徊的人走得快。‑‑‑‑‑‑ 莱辛 作者简介 付文平,携程机票研发部前端开发总监。...我们也从最初用Node.js来完成前后端的架构分离到最近使用GraphQL来做微服务,机票部门在Node.js的应用探索上越走越宽。 一、前后端分离 ?...和传统的restAPI相比: 数据获取:GraphQL可以按需获取,通过调用方指定schema返回不同报文,RestfulAPI则是下发相同的结构; 类型系统,强校验:GraphQL使用Type System...来定义API,公开的类型都是通过SDL模式进行编写,统一前后端契约结构,便于使用; URL入口:Rest不同的请求入口不同,在请求的URL上需要做区分,GraphQL则是一个入口(/graphql?...PM2+Node.js+Express+Express-GraphQL,选用Express-GraphQL作为核心中间件,统一客户端的请求入口为/graphql?

1.2K20

干货 | 携程机票Node.js开发实践

我们也从最初用Node.js来完成前后端的架构分离到最近使用GraphQL来做微服务,机票部门在Node.js的应用探索上越走越宽。...在这样的开发模式下,会存在一些问题和痛点: 前后端代码耦合在一起,维护成本比较大,前端的同学不熟悉服务端开发语言,服务端同学也不熟悉前端的交互; 展示逻辑和业务逻辑混在在一起,前后端开发同学的职责不明确...和传统的restAPI相比: 数据获取:GraphQL可以按需获取,通过调用方指定schema返回不同报文,RestfulAPI则是下发相同的结构; 类型系统,强校验:GraphQL使用Type System...来定义API,公开的类型都是通过SDL模式进行编写,统一前后端契约结构,便于使用; URL入口:Rest不同的请求入口不同,在请求的URL上需要做区分,GraphQL则是一个入口(/graphql?...PM2+Node.js+Express+Express-GraphQL,选用Express-GraphQL作为核心中间件,统一客户端的请求入口为/graphql?

1.4K20

写在2021: 值得关注学习的前端框架和工具库

XState,不止适用于React,可以和Vue/Svelte/Ember这样的框架一起,也可以和RxJS这样的响应式库一起用。...它对自己的定义也包含状态管理的字样,而是有穷状态机( finite state machines )。暂时没有使用过,不做展开介绍。...Ionic,出现比较早的一个跨端方案,最开始只支持Angular,现在还支持了React和Vue,暂时没有使用过。目前的了解是性能与Vue支持上存在一些问题(所以Angular YES)。...Libs TypeGraphQL,最爱的GraphQL工具库没有之一,让你用TS的Class和装饰器来定义GraphQL Type,和TypeORM Class-Validator一起用非常愉悦(当然...但我只是比较简单的使用过,用于和TypeGraphQL一起实现自定义指令,详见 这里 Engine GraphQL Engine其实是一个非常神奇的方向,有点像REST那边的各种自动生成REST API

2.8K10

写在 2021: 值得关注学习的前端框架和工具库

XState[4],不止适用于React,可以和Vue/Svelte/Ember这样的框架一起,也可以和RxJS这样的响应式库一起用。...它对自己的定义也包含状态管理的字样,而是有穷状态机( finite state machines[5] )。暂时没有使用过,不做展开介绍。...Ionic[20],出现比较早的一个跨端方案,最开始只支持Angular,现在还支持了React和Vue,暂时没有使用过。目前的了解是性能与Vue支持上存在一些问题(所以Angular YES)。...NestJS基于Express(也有Fastify的适配),同样预置好了各种能力,并且能很好的兼容Express中间件生态。我正在捣鼓的新项目就是基于Angular + Nest,越写越爽。...但我只是比较简单的使用过,用于和TypeGraphQL一起实现自定义指令,详见 这里[52] Engine GraphQL Engine其实是一个非常神奇的方向,有点像REST那边的各种自动生成REST

4.2K10

前端开发使用GraphQL——服务端技术选型

在你决定使用GraphQL之前你最好仔细调研一下使用GraphQL能给你的项目带来什么好处,不然晋升答辩考核的时候,大概率你都不知道怎么描述自己的业绩。...例如: 接口存在很多冗余字段 字段命名规范 接口文档很多丢失、过时 部分接口功能耦合 实现一个功能的能力分散在多个接口里面 ETC......Nodejs框架选择 express:生态丰富,但是过于简单,自己需要实现很多其他内容 koa: 同上,生态丰富,但是过于简单,自己需要实现很多其他内容 eggjs: 阿里基于koa开发的框架,插件丰富...express与koa都太过简单,不适合直接拿来使用,egg文档优秀,社区内容也丰富,但是对typescript和GraphQL的支持都比较有限,最终决定使用nestjs,nestjs是基于typescript...区别在于组织代码的方式上,具体的区别这里展开,有兴趣可以参考GraphQL 落地背后:利弊取舍 使用 typescript 开发 GraphQL 时,一般要基于 typescript 对数据定义模型

1.8K20

一种不错的 BFF Microservice GraphQLREST API 层的开发方式

云原生(Cloud Native)Node JS Express Reactive 微服务模板 (REST/GraphQL) 这个项目提供了完整的基于 Node JS / Typescript 的微服务模板..., 打包 启用 Swagger - Express swagger 中间件 / Swagger UI 集成 GraphQL 基于 Apollo Server 2.0,带有 JWT 安全性、数据加载器(data...示例 API,模式以供参考 Sonar Qube 集成 Hystrix 熔断器支持 (使用 Brakes) 基于 JWT 的 API 安全性 - jsonwebtoken, express-jwt 现在使用超级快速的...Clustering (true 或 false) false SWAGGER_API_DOCS_ROOT 服务您的 Swagger API 文件,以便它们可与 Swagger UI,PostMan 等前端工具一起使用...Compression 默认情况下,压缩是在服务器上启用的,并且基于压缩模块 配置详细信息位于 compression.ts 文件中 如果需要在压缩的情况下获取响应,请在请求头中传递 x-no-compression

2.3K10

基于 Express 应用框架的技术方案选型浅谈

温馨提示: 接下来使用的示例项目都相对简单,希望对刚入门 Express 的小白们有所启示。...此时前后端分离,可以同时启动服务端 Express 服务和启动开发态 React 调试页面服务(webpack-dev-server),并使用开发态页面向 Express 服务发送请求获取接口数据(当时使用...为了支持 Graphql 查询语言,服务端选择使用支持 Express 中间件扩展的 graphql-yoga。...客户端的 HTTP 请求需要符合 Graphql 请求格式,一种方式是使用 axios 等模拟 Graphql 的请求格式,另外一种方式是选用支持Graphql 请求格式的请求库,这里选用 lokka...例如目前的主流框架设计的一些脚手架,可以优雅的将 Webpack 配置,开发态渲染服务器以及请求代理结合在一起,做到开箱即用,提升用户的开发体验。

7K30

GraphQL+Koa2实现服务端API结合Apollo+Vue

从这个意义上说,它是数据库无关的, 而且可以在使用 API 的任何环境中有效使用,我们可以理解为 GraphQL 是基于 API 之上的一 层封装,目的是为了更好,更灵活的适用于业务的需求变化 GraphQL...三、Express中集成GraphQl 实现 Server API 3.1 安装mongodb造数据 使用mongodb做数据库演示,mac安装mongodb,brew install mongodb-community.../dump(本地数据文件路径) 3.2 express集成GraphQl https://github.com/graphql/express-graphql npm install express-graphql... graphql--save 引入express-graphql配置中间件 app完善配置 // app.js var express=require('express'); var DB=require...将它与vue-apollo和graphql一起安装: npm install vue-apollo graphql apollo-boost --save 在src/main.js中引入apollo-boost

5.1K42

每日前端夜话(0x04):2018年JavaScript状态调查(中)

GraphQL ? GitHub 10k stars GraphQL是一种可以与任何后端服务相关联的查询语言和执行引擎。 GraphQL 随时间的流行度 ? GraphQL 最受喜欢的方面 ?...GraphQL 最不受欢迎的方面 ? 哪些工具与 GraphQL 一起使用? ? 使用 GraphQL 的国家情况 平均而言,20.3%的受访者使用GraphQL ,并乐于再次使用它。...Express ? GitHub 41k stars node的高效极简的Web框架。 Express 随时间的流行度 ? Express 最受喜欢的方面 ? Express 最不受欢迎的方面 ?...哪些工具与 Express 一起使用? ? 使用 Express 的国家情况 平均而言,63%的受访者使用Express ,并乐于再次使用它。...虽然每年都有无数框架出现,但很少有人能够获得足够的动力来挑战Express。 甚至被称为Express的继任者的Koa,其满意度较低(并且使用数量大大降低)。

1.5K20

对开源框架跃跃欲试,却在写的时候犯了难?

如下图所示: 该平台前后端分离,包含身份验证、会话管理、数据库 CRUD 等功能。...示例用到的开源框架,包括 React、Koa、Next.js、Express、Django、Gin、Laravel 等等,希望借此通过实际项目让你快速了解这些开源框架,从而能够轻松上手。...但是由于 RealWorld 里项目众多,再加上维护也积极,导致里面的项目质量参差不齐,其中有很多项目都已经停止维护了。...但它们中有的用到的开源框架版本较低或已经过时,使用时得注意一下,开源不易还望多多包涵。 现在有了 RealWorld,当你再遇到那些让你摩拳擦掌的开源框架时,就知道从哪下手,不会再留有遗憾啦!...---- 其实 Web 开发无外乎身份验证、会话管理、增删改查这些东西,不管多大的项目也离不开这些。

57510

最流行六种的 API 架构风格(附 Node.js DEMO)

但对于需要实时性要求较高的应用程序,或者需要处理复杂的业务逻辑和数据处理的应用程序,可能需要使用其他技术或协议。 # GraphQL GraphQL 是一种用于 API 开发的查询语言和运行时环境。...# DEMO server.js const express = require("express"); const { graphqlHTTP } = require("express-graphql...app const app = express(); // 添加 graphql 中间件 app.use( "/graphql", graphqlHTTP({ schema: schema...API 设计方法 缓存 GraphQL 的灵活性和可扩展性使得缓存变得更加复杂,需要使用专门的缓存机制来提高性能 安全性 由于 GraphQL 的灵活性,如果没有正确的安全措施,可能会导致数据泄漏和安全漏洞...大型 Web 应用程序 GraphQL 的可扩展性和灵活性使得它适用于需要处理大量数据的 Web 应用程序 如 Facebook、GitHub 等都在使用 GraphQL,以此来提高性能和可扩展性 微服务

1.8K60

API接口架构REST vs GraphQL

虽然 GraphQL 正在变得非常流行,但它并没有取代 REST,因为一些用户发现它更难使用,并认为它是一个过度设计的解决方案,尤其是对于一些小型项目。...比如laravel,express,django,springboot 等,它们都提供了非常方便的方法来实现 REST 接口。...例如,/api/articles 使用 MongoDB 在 Express 应用程序中设置 REST 接口非常简单: app.get('/api/articles', async (req, res)...使用 GraphQL,可以从模式中删除推荐使用的字段,而不会影响现有查询。这为应用程序提供了对新功能的持续访问,并鼓励更清洁、更可维护的代码。...总结 虽然 REST 架构在过去十年中主导了 Web 开发,但它对接口调用的的使用使其在某些情况下有些不灵活且效率低下。

1.6K30

graphql+koa2 前端bff层

使用graphql的优势: 前端把握查询的主动权,可定义你需要查询的字段过滤冗余,另外减少两端的沟通 接手bff层前端可作为空间更大,包括做一些鉴权 请求合并更加便利(以前初始化多个请求需要一起返回都是使用...为什么要写要两个配置,因为不是所有的请求都需要使用graphql做处理,这一点在后面使用它的时候就会知道,它有优势当然也有劣势。引入你的项目要看它能发挥多大价值。...前端中间服务层的配置 中间服务层使用koa2搭建,当然你也可以使用express等等其他。...typeDefs是graphql的类型定义,使用的是schema来约束类型,resolvers就是解释器也就是你定义的类型需要怎么处理。...配置好后启动中间层服务,graphql查询生效之后会开启一个/graphql的路径接口,如果我们要使用graphql查询就请求/graphql这个路径。

11110
领券