首页
学习
活动
专区
圈层
工具
发布

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

虽然我们很幸运,不必再关心 SOAP,但 REST 也不是历史的终结。 最近,我有机会为自己的项目和客户开发和运行一些使用 GraphQL API 构建的移动和 Web 应用程序。...至此,我再也无法回过头来享受使用 REST 的工作了。 REST 有什么问题吗? 每个 REST API 都是独特的 公平地说,REST 甚至不是一个标准。...你可能会说你的 API 是 RESTful 的,但是对于如何安排端点或是否应该(例如)使用 HTTP 方法PATCH进行对象更新,一般没有严格的规则。...我们不能抱怨,因为毕竟没有广泛使用的标准。 事实上,下面提到的大多数注意事项都是由于缺乏标准造成的,但是我想强调一下在实践中经常看到的情况。...参见 GitHub REST API(至少不是在头中传递 JSON)。 说到过滤,就有趣多了……需要按一个字段过滤吗?没问题,可能是/todos?

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

    Django+Vue开发生鲜电商平台之8.商品详情页功能实现

    不走康庄大道,我自己喜欢做什么要比别人怎么看我更重要。...2.DRF权限验证 通常,仅进行身份验证或标识不足以获取信息或代码。为此,请求访问的实体必须具有授权。权限与身份验证和限制一起,确定是否应准予请求访问或拒绝访问。...权限检查始终在视图的开始处运行,然后再允许执行其他任何代码,通常会使用request.user和request.auth属性中的身份验证信息来确定是否应允许传入请求。...权限用于授予或拒绝不同类别的用户对API不同部分的访问,最简单的许可方式是允许访问任何经过身份验证的用户,并拒绝访问任何未经身份验证的用户。...,而不再是根据UserFav的主键id进行查找,就到了自己设置查询使用字段的目的,可用性更高。

    1.5K20

    从Java全栈到Vue3实战:一场真实的技术面试故事

    程序员:我叫李明,28岁,本科毕业,有5年Java全栈开发经验。 面试官:很好,那我们就从基础开始聊起。你平时主要使用哪些技术栈?...程序员:嗯……前后端分离的话,主要是通过REST API进行通信,前端用Vue3来渲染页面,后端用Spring Boot提供接口服务。 面试官:非常棒,说明你对这个模式理解得很清楚。...程序员:好的,我之前做过一个电商系统的项目,后端用Spring Boot搭建,前端用Vue3,中间通过Axios调用API。 面试官:听起来不错,那你能讲讲你是怎么设计API的吗?...程序员:JWT是一种令牌机制,用于身份验证和信息交换,可以跨域使用。 面试官:非常正确,说明你对安全机制有一定的掌握。那你在项目中有没有用到CI/CD?...REST API提供用户数据,前端可以通过Axios调用该接口获取数据。

    16710

    从全栈工程师视角解析Java与前端技术的深度融合

    **应聘者**:商品展示模块主要是通过REST API获取数据,然后在前端用Vue3渲染出来。后端用Spring Boot提供接口,前端用Element Plus做UI组件。...### 第三轮:技术细节探讨,挖掘真实水平 **面试官**:那你能不能写一个简单的Spring Boot控制器示例? **应聘者**:当然可以。...**面试官**:那你们是怎么进行CI/CD的? **应聘者**:用GitHub Actions做自动化测试和部署,每次提交都会触发构建流程。 **面试官**:听起来很高效。...**应聘者**:用Spring Security做权限控制,结合JWT来做身份验证。 **面试官**:JWT是什么原理?...from 'axios'; const products = ref([]); onMounted(() => { axios.get('/api/products').then(response

    12900

    从零到一:一个Java全栈工程师的面试实战解析

    前后端通过REST API通信,使用JWT做身份验证。前端页面会调用后端接口获取商品信息、用户数据等,然后通过Vuex管理状态。...```js // Vue3 中使用Axios请求后端API import axios from 'axios'; const fetchProducts = async () => { const...**应聘者**:我觉得前后端分离的关键在于接口的设计和通信方式。我们会使用RESTful API或者GraphQL来提供数据,前端通过Axios或Fetch API调用这些接口。...同时,后端会使用Spring Cloud来管理多个微服务,并通过Feign或OpenFeign进行服务间的通信。 **面试官**:说得很好。那你在项目中有没有遇到过性能瓶颈?你是如何优化的?...我们也会使用GitHub进行代码托管和CI/CD的自动化测试。 **面试官**:很好,这说明你有良好的工程实践习惯。那你在项目中有没有使用过消息队列? **应聘者**:有。

    18810

    从Java全栈到云原生:一位资深开发者的实战之路

    我的工作内容包括使用Spring Boot构建高性能REST API,同时利用Vue3和TypeScript实现高效的前端交互,并通过Docker和Kubernetes进行容器化部署。...你是如何设计REST API的?有没有遇到过什么挑战?...**应聘者**:我们在设计REST API时,通常会遵循RESTful原则,使用HTTP方法(GET、POST、PUT、DELETE)来操作资源。...为什么选择它? **应聘者**:我比较倾向于Vue3,因为它具有良好的性能和灵活性。尤其是在大型项目中,Vue3的Composition API让代码结构更清晰,便于维护。...在一次内容社区平台的开发中,我负责前端架构设计和组件封装。我们使用了Element Plus作为UI库,结合Vuex进行状态管理。为了提高页面加载速度,我们还采用了懒加载和代码分割技术。

    21010

    从Java全栈到Vue3实战:一位资深开发者的面试实录

    ## 第二轮:框架与工具 ### 2.1 Spring Boot与REST API **面试官**:你在项目中使用过Spring Boot,能说说你是如何设计REST API的吗?...为什么选择其中一个? **林浩然**:我更倾向于使用Gradle,因为它支持多项目构建,配置更加灵活,而且插件生态也很丰富。不过Maven在某些场景下也很好用,特别是对于传统的Web项目。...### 5.2 JWT与身份验证 **面试官**:你们有没有使用JWT? **林浩然**:有,我们使用JWT来实现无状态的身份验证。每次请求都会携带Token,服务器验证Token的有效性。...**林浩然**:可以通过签名来保证Token的完整性。使用HMAC或RSA算法对Token进行签名,确保其不被修改。...from 'axios'; const products = ref([]); onMounted(() => { axios.get('/api/products').then(response

    24800

    从零到一:一个Java全栈开发者的实战面试实录

    那你知道如何设计一个高性能的REST API吗? **林浩然**:要设计高性能的API,首先需要考虑请求的频率和响应时间。可以使用缓存来减少数据库访问次数,比如Redis。...**林浩然**:比如在电商平台中,我使用Vue3构建了商品列表页面。通过Composition API,我可以更好地组织代码逻辑,提高可维护性。...**林浩然**:通常我们会使用Feign Client进行声明式REST调用,或者使用gRPC进行高效的远程调用。 **面试官**:非常专业,继续保持。...你有使用过哪些监控工具? **林浩然**:我使用过Prometheus和Grafana来监控系统性能,也用过Sentry进行错误追踪。 **面试官**:那你能说说你是如何进行性能优化的吗?...## 技术点总结 本次面试涵盖了Java全栈开发的核心技术,包括JVM内存管理、Spring Boot REST API设计、MyBatis ORM使用、Vue3前端开发、Spring Cloud微服务架构

    20910

    Vue + Node.js 搭建「文件上传」管理后台

    这是因为后端部分还没有跑起来,接下来,我带领大家手把手搭建上传文件的后端部分。 Vue 前端「上传文件」源码 你可以在我的 github 上下载到完整的 Vue 上传文件 Demo。...✦ 后端部分 - 上传文件 Node.js + Express + Multer 前文我们介绍了如何使用 Vue 搭建上传文件管理工具的前端部分,接下来我教大家使用 Node.js + Express...+ Multer 来搭建一套上传文件的后端 Rest API,提供给 Vue 前端使用,从而实现 Vue 选择文件 + Axios 调用后端 API HTTP 通讯,最后把文件上传到服务器指定目录。...${err}`, }); } }; 设置后端 Rest API 上传文件的路径 当 Vue 前端通过 Axios 发送 HTTP 请求时,我们需要通过路由来确定服务器应该如何响应 我们来设置三种常用到的上传文件所需功能...Node.js 后端「上传文件」源码 你可以在我的 github 上下载到完整的 Node.js 后端「上传文件」源码。

    13.7K30

    从Java全栈工程师视角看现代Web开发的挑战与实践

    那你在项目中是如何进行前后端交互的呢? **李明**:我们采用RESTful API的方式进行通信,前端使用Vue3 + TypeScript,后端用Spring Boot提供接口。...**李明**:比如我们有一个商品管理模块,后端提供的接口是`GET /api/products/{id}`,用来获取某个商品的信息。前端通过Axios发送请求,然后展示数据。...`axios.get('/api/products/1')`来获取数据。...## 技术点总结与学习建议 ### REST API设计 REST API是现代Web开发的核心,合理的URL设计和HTTP方法使用能够提升系统的可读性和可维护性。...使用Axios或Fetch API与后端交互是一种常见做法。 ### 微服务架构 微服务架构有助于系统的扩展和维护,但同时也带来了服务间通信、配置管理、服务发现等问题。

    18900

    从零到一:一个Java全栈开发者的面试实战分享

    **面试官**:那你能不能举个例子说明你是如何使用Vue.js进行状态管理的? **应聘者**:我通常会结合Vuex或者Pinia来管理组件间的共享状态。...**应聘者**:我们使用了阿里云OSS来进行图片和视频的存储,并且通过JWT进行身份验证,确保只有合法用户才能上传内容。 **面试官**:很好,那你们有没有遇到什么性能瓶颈?...**应聘者**:我会使用Axios或Fetch API,例如: ```javascript axios.post('/api/v1/content', { title: '测试标题', content...那你们有没有使用过Docker或Kubernetes? **应聘者**:有,我们在部署时使用Docker容器化应用,并通过Kubernetes进行编排和管理。...**应聘者**:是的,我们使用Redis缓存热点数据,并通过Prometheus和Grafana进行监控。 **面试官**:那你能说说你是如何利用Redis进行缓存的吗?

    24210

    从Java全栈到云原生:一场真实的技术面试实战

    - 对于JVM调优,我曾在电商系统中遇到内存泄漏的问题,通过使用JConsole和MAT工具分析堆栈,发现了一些未关闭的数据库连接,最终通过调整GC策略和优化代码逻辑解决了问题。...- 我参与了一个内容社区项目,负责用户评论模块的开发,使用Vuex进行状态管理,并通过Axios调用REST API获取数据。...- 前端采用Vue3+TypeScript,通过Axios与后端通信,使用JWT进行身份验证。 - 同时,我们引入了Redis作为缓存层,减少数据库压力,并利用Kafka进行异步消息处理。...**林子阳**: - 是的,我们在一个内容管理系统中尝试使用GraphQL,相比REST API,它能更灵活地获取所需数据。 - 但缺点是学习曲线较陡,需要良好的Schema设计和查询优化。...**林子阳**: - 是的,我们团队使用Git进行版本控制,遵循Git Flow流程。 - 代码审查是必须的,通过GitHub Pull Request进行评审,确保代码质量。

    15710

    从Java全栈工程师视角看技术面试:实战经验分享

    我看到你的简历上提到你熟悉Java SE和前端框架,能简单介绍一下你在工作中使用过的Java版本和前端框架吗?...**程序员**:Vue3的响应式系统更简洁,特别是组合式API让我在写组件时更加高效。而React虽然也支持函数组件,但需要更多状态管理的处理。...**程序员**:我们用GitLab CI和Jenkins来做持续集成,最后通过Docker和Kubernetes进行部署。 **面试官**:那你是如何监控系统的运行状态的?...axios.get('/api/users') .then(response => { this.users = response.data; })...后端提供REST API接口,前端通过Axios发起请求并渲染数据。这种模式在现代Web开发中非常常见,也是全栈工程师必须掌握的基础技能。

    22410

    从全栈开发到微服务架构:一位Java工程师的实战之路

    参与前端页面的开发,使用Vue3和Element Plus构建用户界面,并通过REST API与后端进行交互。 3. 设计并实现基于Kafka的消息队列系统,提升系统异步处理能力和稳定性。...比如我们有一个商品列表组件,使用了Element Plus的Table组件,并通过Axios获取数据。...**应聘者**:我们使用了OpenFeign和Ribbon,通过REST API进行通信,同时也考虑到了服务降级和容错。 **面试官**:有没有遇到过服务雪崩问题? **应聘者**:有。...我们使用Element Plus的Table组件来展示商品列表,并通过Axios获取数据。 ### 5....通过这些工具,我们实现了服务的高可用性和可扩展性。 ### 6. 安全与认证 我们使用JWT和Spring Security进行用户认证,确保用户身份验证的安全性。

    13610

    从全栈开发到云原生:一位Java工程师的面试实战分享

    #### 应聘者: "我通常使用Maven或Gradle来管理依赖,特别是在Java项目中。对于前端项目,我会用npm或yarn来安装依赖,然后通过Vite或Webpack进行打包。"...您能写一个简单的Spring Boot REST API吗?"...#### 应聘者: "我一般使用Vue 3的Composition API,将组件按功能划分成不同的模块。同时,我也使用了Vuex进行状态管理,确保全局状态的一致性。"...#### 应聘者: "我们使用Spring Security来管理权限,结合JWT实现无状态认证。用户登录后,服务器生成一个JWT令牌,客户端在后续请求中携带该令牌进行身份验证。"...#### 应聘者: "是的,我们在项目中使用了GitHub Actions进行持续集成,每次提交代码都会触发构建和测试流程,确保代码质量。"

    22710

    从零到一:一个Java全栈工程师的面试实录

    **应聘者**:我们使用了JWT(JSON Web Token)来进行身份验证。用户登录后,服务器会返回一个Token,前端将其存储在localStorage中,并在每次请求时附带这个Token。...后端通过解析Token来判断用户是否合法。 **面试官**:那你能不能写一段代码展示一下前端如何发送带有Token的请求?...**应聘者**:当然可以,以下是使用Axios发送请求的示例: ```javascript // 设置Axios的默认请求头,包含Authorization字段 axios.defaults.headers.common...**应聘者**:我们主要使用了REST API和gRPC两种方式。对于需要高性能的场景,比如支付服务,我们选择了gRPC;而对于通用的业务接口,我们使用REST API。...那你在监控方面有没有使用过Prometheus和Grafana? **应聘者**:是的,我们使用Prometheus收集指标,然后通过Grafana进行可视化展示。

    13610
    领券