当前位置: 首页 > news >正文

漯河市城市建设投资公司网站百度贴吧官网入口

漯河市城市建设投资公司网站,百度贴吧官网入口,做网站常用的背景图像,策划会展网站建设GraphQL vs RESTful 简单来说GraphQL 比起 RESTful 集成额外一些功能 出入参校验、序列化 (简化后端编程)自由可选的返回数据字段 (简化一些多余接口开发和沟通联调成本) 这些都是优点了。 开发效率在项目初期是很重要的,需要快速原型化。 但是后期稳定后&#…

GraphQL vs RESTful

简单来说GraphQL 比起 RESTful 集成额外一些功能

  1. 出入参校验、序列化 (简化后端编程)
  2. 自由可选的返回数据字段 (简化一些多余接口开发和沟通联调成本)

这些都是优点了。

开发效率在项目初期是很重要的,需要快速原型化。
但是后期稳定后,性能也很重要。

对比

RESTful + Pydantic

from sanic import Sanic, text
from pydantic import BaseModel
from typing import Listapp = Sanic("simple")class Simple(BaseModel):name: strage: inthobbies: List[str]@app.post("/rest")
async def rest_test(request):Simple.model_validate(request.json)return text("ok")

k6测试代码

import { check } from 'k6';
import http from 'k6/http';export default function () {let data = { "name": "Stephen Ling", "age": 28, "hobbies": ["coding", "coffee"] }const res = http.post('http://localhost:9090/rest', JSON.stringify(data), {headers: { 'Content-Type': 'application/json' },});check(res, {'is status 200': (r) => r.status === 200,});
}

在这里插入图片描述

GraphQL(strawberry)

k6测试代码

import { check } from 'k6';
import http from 'k6/http';export default function () {let data = {"query": "mutation {\n  resolveGraphql(name: \"Stephen Ling\", age: 28, hobbies: [\"coding\", \"coffee\"])\n}"}const res = http.post('http://localhost:9090/graphql', JSON.stringify(data), {headers: { 'Content-Type': 'application/json' },});check(res, {'is status 200': (r) => r.status === 200,});
}

默认情况

import strawberry
from strawberry.sanic.views import GraphQLView
from sanic import Sanic, textfrom pydantic import BaseModel
from typing import Listapp = Sanic("simple")@strawberry.type
class Mutation:@strawberry.mutationasync def resolve_graphql(self, name: str, age: int, hobbies: List[str]) -> str:return "ok"@strawberry.type
class Query:@strawberry.fieldasync def nothing(self) -> None:...app.add_route(GraphQLView.as_view(schema=strawberry.Schema(query=Query,mutation=Mutation,),),"/graphql",
)

在这里插入图片描述

加上缓存

...
from strawberry.extensions import ParserCache, ValidationCache...
app.add_route(GraphQLView.as_view(schema=strawberry.Schema(query=Query,mutation=Mutation,extensions=[ParserCache(), ValidationCache()],),),"/graphql",
)

在这里插入图片描述

体会

  1. graphql 适合减轻前后端联调的沟通成本。谁错谁对一目了然。
  2. 选择实现库之前,衡量一下性能代价是否能接受。
  3. 实现库之间尽可能横向对比一下。
  4. 在可以忍受的性能差距下,我会选择开发效率,毕竟每个代码的生命周期是有限的,没有必要死磕。
http://www.hotlads.com/news/572.html

相关文章:

  • 网站开发实习生下拉词排名
  • 公司做网站的费用记什么科目南城网站优化公司
  • 学网站开发跟那个专业最相近怎么去推广自己的产品
  • 网站建设电百度河南代理商
  • 如何查询网站的访问量平台seo
  • 广州网站建设网站托管运营百度站长链接提交
  • 织梦网站怎么做安全措施aso关键词搜索优化
  • 免费微信网站建设正在直播足球比赛
  • 定安免费建站公司seo如何优化网站
  • ps网站建设教程视频新产品怎样推广
  • 关于营销方面的网站成都seo
  • 景观设计网站推荐宁波seo企业网络推广
  • 怎样做网站用html免费b站推广网站不用下载
  • 沈阳网站制作哪家好免费发布产品的平台
  • 淘宝做的网站可靠吗域名解析ip
  • 如何做企业招聘网站关于进一步优化落实疫情防控措施
  • 上海市网站建石家庄百度快照优化排名
  • 网站开发公司所需投入资源新人跑业务怎么找客户
  • 江西鄱阳专业做网站如何用google搜索产品关键词
  • 手机网站建设文章刷排名有百度手机刷排名
  • 宁波百度网站建设推广一手渠道
  • 网站免费永久网站策划方案范文
  • 怎么把自己做的网站长春seo公司哪家好
  • 做淘宝网站java代码百度新站关键词排名
  • 网站如何在百度上做推广方案下载百度极速版免费安装
  • woocommerce做零售网站软文网站模板
  • 做网站费用入什么科目武汉seo霸屏
  • 网站身份验证怎么做外贸独立站建站
  • 如何做微信小程序网站百度竞价平台官网
  • 代做土木毕业设计网站百度搜索数据统计