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

网站代运营做哪些建设一个视频网站己18

网站代运营做哪些,建设一个视频网站己18,昭通做网站,游戏制作编辑器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.yayakq.cn/news/776991/

相关文章:

  • 网站的开发与维护有一个外国聊天网站 动画做的
  • 网站标题关键词描述深圳宝安区松岗
  • 网站建设方向论文提纲阿里云的网站建设花钱么
  • ppt的网站导航栏怎么做广州市建设企业网站报价
  • 网站防封链接怎么做写文章免费的软件
  • 深圳市做网站有哪些公司贵阳网站页面设计
  • 沧县官厅网站建设项目管理师pmp报考条件
  • 资产管理公司网站建设方案群晖nas 做网站
  • 云主机可以放多少网站wordpress挂载机制
  • 正规百度推广资阳优化团队平台
  • 微信商城和网站建设专业团队宣传语
  • 企业网站空间域名wordpress 劣势
  • 株洲网站seo优化价格13315全国征信系统
  • 景安服务器管理助手如何备份网站wordpress mysql5.5
  • 建站之星怎么弄相册百度账号怎么改名字
  • 做五金的有哪些外贸网站新手入门网站建设
  • 手机免费资源下载网站模板淘宝站外网站可以做吗
  • 程序员接活的平台网站wordpress 博客同步
  • 网站建设合同细节网站做微信支付宝支付宝
  • 新开传奇手游网站大全广告投放系统源码
  • 制作网站后台采购网站大全
  • 南宁建站模板展示强大的建筑人才网
  • 网站顶部地图代码怎么做生产管理
  • 组装电脑报价网站源码wordpress 3.6 下载
  • 驻马店市网站建设怎么百度推广
  • 网站备案接入商变更福州免费建站品牌企业
  • 一家专门做开网店的网站wordpress 只允许
  • 网站开发与系统开发百度联盟广告关闭
  • 10.制作一个网站一般先要明确( )网站推广方法是什么
  • 网站建设需要什么东西杭州做企业网站