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

为什么我使用 GraphQL 而放弃 REST API?

虽然我们很幸运,不必再关心 SOAP,但 REST 也不是历史的终结。 最近,我有机会为自己的项目和客户开发和运行一些使用 GraphQL API 构建的移动和 Web 应用程序。...至此,我再也无法回过头来享受使用 REST 的工作了。 REST 有什么问题吗? 每个 REST API 都是独特的 公平地说,REST 甚至不是一个标准。...你可能会说你的 API 是 RESTful 的,但是对于如何安排端点或是否应该(例如)使用 HTTP 方法PATCH进行对象更新,一般没有严格的规则。...这应该很简单,对吧?使用 URL 编码,查询看起来是这个样子:/todos?filterKeys=key1%2Ckey2&filterValue=value。...它可能看起来像 ORM,但它不是:你可以完全控制如何设计数据库模式,以及使用什么索引。

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

    REST API 设计最佳实践:如何构建、设计和使用 API ?

    作为一名开发者,我很幸运能够在工作中使用一些仍然存在的SOAP服务。但是,我主要接触的是REST,这是一种基于资源的API和Web服务开发架构风格。...在我的职业生涯中有很大一部分时间都参与了构建、设计和使用API 的项目。我见过的大多数API 都“声称” 是 “符合REST原则”的——意味着遵循 REST 架构的原则和约束。...现在问题来了:如何将这样的功能融入REST API? 我的答案是:使用查询字符串(querystring)。 我认为使用查询字符串实现分页非常明显。它看起来像这样: GET: /books?...使用专门针对REST API的网络框架 作为最后一个最佳实践,让我们讨论这个问题:如何在您的API中实际应用最佳实践?大多数时候,您希望建立一个快速的API,以便一些服务可以相互交互。...我强烈建议您试一试这些框架,它们将帮助您构建美观、优雅且设计精良的REST API。 结束语 我们都应该努力使API变得易于使用。无论是对于消费者,还是我们自己的开发人员同伴。

    45340

    如何使用mitmproxy2swagger对REST API进行逆向工程分析

    这也就意味着,在该工具的帮助下,广大研究人员能够以自动化的形式对REST API进行逆向分析,并捕捉流量数据。 除此之外,该工具还可以支持从浏览器开发者工具导出并处理HAR文件。  ...或 ... $ pip3 install mitmproxy2swagger  工具使用  Mitmproxy 首先,通过运行mitmproxy工具来捕捉流量数据,我们建议大家使用mitmweb,也就是内置在...在mitmweb中,我们可以点击“File”菜单,并选择“Save”: 第三步,使用下列参数命令来运行mitmproxy2swagger: $ mitmproxy2swagger -i -o -p api_prefix> 需要注意的是,我们可以直接使用已有的schema,并根据需要来进行自定义扩展。...其中的api_prefix>是需要进行逆向工程分析的目标API的URL基地址前缀,然后可以在mitmproxy中观察请求以及响应数据。

    1.5K30

    如何使用RESTler对云服务中的REST API进行模糊测试

    RESTler RESTler是目前第一款有状态的针对REST API的模糊测试工具,该工具可以通过云服务的REST API来对目标云服务进行自动化模糊测试,并查找目标服务中可能存在的安全漏洞以及其他威胁攻击面...如果目标云服务带有OpenAPI/Swagger规范,那么RESTler则会分析整个服务规范,然后通过其REST API来生成并执行完整的服务测试。...RESTler配置 RESTler目前仅支持在64位的Windows和Linux操作系统上运行。 构建指引 工具要求:安装Python 3.8.2和.NET Core SDK 3.1。...接下来,创建一个用于存放RESTler源代码的目录: mkdir restler_bin 切换到项目根目录下,然后运行下列Python脚本: python ....: dotnet nuget locals all --clear RESTler使用 RESTler能够以下列四种模式运行: Compile:从一个Swagger JSON或YAML规范生成一个RESTler

    5.1K10

    为什么我的 Mac 运行缓慢以及如何使用CleanMyMac X修复它

    使用我们下面描述的十种行之有效的方法,您心爱的设备应该很快就会飞起来。...10 种有保证的解决方案,可加快慢速 Mac 的运行速度 1.后台运行过多 如果您的 Mac 无法再处理简单的任务,并且您想找到“为什么我的 Mac 这么慢?”...要了解更多信息,请查看这篇关于 如何从 Mac 中删除病毒和恶意软件的文章。 5.存储没有优化 Apple 开发人员已经预见到 Mac 运行缓慢的问题。...运行此命令有助于通过单击几下清除 Mac 的内存。试一试,看看你的 Mac 表现如何。...我们所有人都会下载一开始看起来有用且令人兴奋的应用程序,但结果却使我们的磁盘变得杂乱无章,而不是经常使用。 快速修复:卸载未使用的应用程序 回答“为什么我的 iMac 这么慢?”

    2.8K30

    Linux超级强大的十六进制dump工具:XXD命令,我教你应该如何使用!

    本文将介绍如何在Linux中使用XXD命令。 安装XXD命令 通常情况下,XXD命令已经预装在Linux操作系统中,因此无需安装即可使用。...在Debian/Ubuntu系统中,可以使用以下命令进行安装: sudo apt-get install xxd 在Red Hat/CentOS系统中,可以使用以下命令进行安装: sudo yum install...vim-common 使用XXD命令查看文件内容 XXD命令可以用于查看文件内容的十六进制表示。...使用XXD命令的语法如下: xxd 例如,要查看文件wljslmz.txt的十六进制表示,可以使用以下命令: xxd wljslmz.txt 执行该命令后,会在终端上显示wljslmz.txt...总结 本文介绍了在Linux操作系统中使用XXD命令的基础知识,包括如何安装XXD命令、如何使用XXD命令查看文件内容、将文件转换为十六进制表示以及编辑二进制文件等操作。

    3.9K80

    meteor 简介

    Why 从 client 到 server, 从 package 到 数据库 api,全部都是JS 跨端 实时渲染 安装 OS X or Linux 平台 curl https://install.meteor.com...使用 使用 meteor create 新建项目,进入项目目录, 执行 meteor 命令,运行,即可在浏览器查看。 ? ? 应用文件结构 ? /server 文件夹中的代码只会在服务器端运行。...在 /client 文件夹中的代码只会在客户端运行。 其它代码则将同时运行于服务器端和客户端上。 请将所有的静态文件(字体,图片等)放置在 /public 文件夹中。...对db操作的REST接口,server 和 client 都可以用到,可以直接放到collections目录下。...包,只需要 meteor add xxx 终端调试,可以用meteor指令将app安装到模拟器中运行 与angular和react无缝对接 终有一天,前端将抛弃CGI、后台,开发出一款属于自己的APP。

    91630

    meteor 简介

    Why 从 client 到 server, 从 package 到 数据库 api,全部都是JS 跨端 实时渲染 安装 OS X or Linux 平台 curl https://install.meteor.com...使用 使用 meteor create 新建项目,进入项目目录, 执行 meteor 命令,运行,即可在浏览器查看。 ? ? 应用文件结构 ? /server 文件夹中的代码只会在服务器端运行。...在 /client 文件夹中的代码只会在客户端运行。 其它代码则将同时运行于服务器端和客户端上。 请将所有的静态文件(字体,图片等)放置在 /public 文件夹中。...对db操作的REST接口,server 和 client 都可以用到,可以直接放到collections目录下。...包,只需要 meteor add xxx 终端调试,可以用meteor指令将app安装到模拟器中运行 与angular和react无缝对接 终有一天,前端将抛弃CGI、后台,开发出一款属于自己的APP。

    1.4K90

    Meteor——不一般的全栈开发平台!

    从图中你可以看到,Meteor在前端使用浏览器作为基础运行环境,在后端则是以NodeJS作为 基础运行环境,以MongoDB作为数据持久化系统。...3.停止应用运行 —— Ctrl+C 用鼠标左键点击一下终端区域,确保它获得键盘输入焦点(你应该可以看到一个 闪烁的光标),然后同时按Ctrl键和C键,即可停止应用运行: ^C ~/test$...可以使用下面命令 清理这些生成的文件和应用数据: ~/test$ meteor rest meteor reset命令不影响你的源代码文件。...可以这样理解: 前端 - Meteor将在最终呈现给用户的HTML文档中使用script标签引用test.js 后端 - Meteor将通过NodeJS读入并运行test.js 毫无疑问,如果不做任何处理...Meteor提供了一组更加清晰的API来实现这个判断: Meteor.isClient - 为真时,表示当前运行环境为前端 Meteor.isServer - 为真时,表示当前运行环境为后端

    1.2K20

    JavaScript 2016年的概况

    调查结果的报告目录结构如下: 简介 JavaScript风格 前端框架 状态管理 API层 全栈框架 测试框架 CSS工具 构建工具 移动框架 特性 意见/评价 开发者的资料...而且还有很多的其它问题:使用React 还是 Angular 2?你真的需要Webpack吗?这个月的建议是该如何处理CSS呢?...新的JavaScript风格即将到来 流行度: ES6 > TypeScript > CoffeeScript Elm 和 ClojureScript 有自己各自一套的生态系统,很难在现有应用中直接使用它们...API层 本节摘要: GraphQL 看上去很有前景 REST APIs仍旧是默认的标准,大幅度领先 流行度: REST API > GraphQL 技术选型方面: GraphQL...+ Relay + Apollo + React Native 全栈框架 本节摘要: 该类别Meteor主导 ‘all in one’模式并不受欢迎 流行度: Meteor > MEAN

    68020

    后端傻瓜化?

    它比较像 meteor 使用的 minimongo,只不过实现的方式有些不同:minimongo 是 mongodb API 的一个子集;而 horizon 操作数据库的 API 不但是 ReQL(rethinkdb...上述这段文字的信息量略大,建议大家往下看之前: 没听过 meteor 的,去 meteor 的官网上看看,生成几个样例中的项目运行起来感受一下; 没听过 rethinkdb,可以去官网了解一下它和 mongodb...如果你看过我之前写的 Rest API 系列,把 API 做好并不是件容易的事情。...可惜 firebase 这样优秀的产品,在国内无法使用(或者可以使用但是大家都不敢使用 —— 万一哪天就连不上了呢?)...,所以我们只能依赖像 horizon,meteor 和开源了的 Parse 这样的工具。 这个趋势放在早期技术团队的搭建上,就是一个什么都懂一点的 CTO,配上产品覆盖的平台下的优秀前端工程师。

    1.7K70

    如何使用Meteor开发以太坊Dapp 原

    本教程将向你展示如何设置Meteor应用程序以用作Ðapp,并可能回答几个关于为什么应该使用Meteor的问题。...常问问题 Meteor不是一个完整的堆栈框架,它是如何适应Ðapp开发的 是的,Meteor是一个完整的堆栈框架,它的主要改进是实时Web应用程序,但Meteor也是第一个框架(我知道),它完全支持了单页...不,使用meteor-build-client,你可以在没有服务器的情况下运行Ðapp的所有静态资源,但是如果你使用像iron或flow-router这样的路由器 ,则需要使用hash(index.html...Ðapp 现在我们可以通过简单运行来运行我们的Ðapp: $ meteor 如果我们转到http://localhost:3000,我们应该看到一个网站出现,如果我们打开浏览器控制台,我们可以使用web3...这里是原文如何使用Meteor开发以太坊Dapp

    1.7K20

    这是前端最好的时代——论前端的“三化”建设

    最后造就的成果是,不仅Java, C++可以放弃业务逻辑,更专注于数据处理的基础服务,而且Node.js能更专注于业务逻辑,挺供API服务给浏览器端的代码进行调用。...三、 前端实时化 我不确定用实时化这个词形容是否恰当,但不可否认的是,web技术的发展使网页获得更好的响应。...Meteor的另一个特色是使用了WebSocket技术。如果你打开TeleScope(使用Meteor技术的一个BBS应用),你能发现它是通过WebSocket获取数据的实时应用。...也正因为Meteor使用WebSocket这个HTML5新特性,Meteor将DDP亲切地称为WebSocket的REST。 ?...在通信协议方案,与Meteor不同,它并不限于使用WebSocket,它其实更着眼于解决REST的问题。

    1.3K70
    领券