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

福田网站设计公司完整的社群营销方案

福田网站设计公司,完整的社群营销方案,服务好质量好的app开发,安监网站如何做紧急预案备案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.yidumall.com/news/47766.html

相关文章:

  • 做音乐网站要多少钱西安优化外
  • 网站前期规划报告营销推广的作用
  • 网站开发的研究现状中国百强城市榜单
  • 用易语言做抢购网站软件百度旅游官网
  • 虚拟主机网站建设过程怎么优化标题和关键词排名
  • 西昌城乡建设网站百度导航最新版本下载安装
  • 长阳网站建设外贸网站推广公司
  • 网站建设的核心博客推广的方法与技巧
  • 远邦保险经纪网站开发助理墨子学院seo
  • 网站发稿平台人大常委会委员长
  • php网站怎么做缓存建站公司排名
  • 外贸仿牌网站建设《新闻联播》 今天
  • 个人网页设计思维导图引擎优化seo怎么做
  • 国外哪个网站做服装seo免费教程
  • wordpress 加ico南京seo圈子
  • 东莞网站设计实力seo网站查询工具
  • 长汀党的建设网站百度小说风云榜排行榜官网
  • 网站建设是什么工作软文世界官网
  • java做网站用什么软件谷歌排名规则
  • 猎聘网网站建设目标免费新闻源发布平台
  • 微网站建设包括哪些内容自己代理一款手游需要多少钱
  • 西昌网站建设公司百度品牌广告多少钱
  • 专业长春网站建设哪家好网站提交收录软件
  • 网站建设需求说明书举例网站快速优化排名官网
  • 台山网站设计北京seoqq群
  • 怎么做淘宝客的跳转网站网站建设方案书范文
  • 网站制作小常识优秀营销软文范例300字
  • 做网站编辑累吗百度竞价点击神器
  • JavaEE网站开发营销型网站建设易网拓
  • 网站的橱窗怎么做自动的网站设计制作