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

在线阅读小说网站开发杭州建设厅官网

在线阅读小说网站开发,杭州建设厅官网,住建城乡建设网站,优化软件GraphQL入门教程#xff1a;构建更高效的APIs GraphQL是一个用于API的查询语言#xff0c;由Facebook于2015年公开发布。它允许客户端精确地指定它们需要从API获取哪些数据#xff0c;从而使数据交换更加高效和强大。与传统的REST API相比#xff0c;GraphQL提供了更加灵活…GraphQL入门教程构建更高效的APIs GraphQL是一个用于API的查询语言由Facebook于2015年公开发布。它允许客户端精确地指定它们需要从API获取哪些数据从而使数据交换更加高效和强大。与传统的REST API相比GraphQL提供了更加灵活和高效的方式来交互数据。 类型系统(Type System): GraphQL的类型系统允许定义复杂的数据结构这些结构可用作API的契约。这种强类型的特性不仅能够确保数据的一致性还可以通过自省(introspection)查询为前端开发者提供一个明确和自文档化(self-documenting)的API。查询(Query)与突变(Mutation): 查询用于获取数据突变用于修改数据包括创建、更新和删除。GraphQL的这一设计哲学支持了数据的CRUD操作同时保持了接口的简洁性。特别是单一端点(single endpoint)的特性简化了前端的数据请求逻辑无需记忆复杂的URL路径。实时订阅(Subscription): GraphQL的订阅机制支持实时数据更新这对于构建动态响应的用户界面至关重要例如实时聊天应用或股票价格更新。 GraphQL的优势在于其灵活性和效率 精确的数据获取客户端可以精确指定它们需要哪些数据避免了过度获取或数据不足的问题。单一请求不同于REST API需要多个请求来获取多资源的数据GraphQL可以通过单一请求聚合多种数据。强类型系统GraphQL的类型系统和架构定义提供了清晰的API文档使前后端开发更加一致且易于维护。 Spring Boot集成GraphQL 1、添加GraphQL依赖 dependencygroupIdcom.graphql-java-kickstart/groupIdartifactIdgraphql-spring-boot-starter/artifactIdversion11.1.0/version /dependency dependencygroupIdcom.graphql-java-kickstart/groupIdartifactIdgraphql-java-tools/artifactIdversion6.2.0/version /dependency2、定义GraphQL Schema 在src/main/resources/graphql/目录下创建.graphqls文件定义GraphQL模式。例如user.graphqls type Query {userById(id: ID!): Userusers: [User!]! }type Mutation {createUser(userInput: UserInput): UserupdateUser(id: ID!, userInput: UserInput): UserdeleteUser(id: ID!): Boolean }input UserInput {name: String!email: String!age: Int }type User {id: ID!name: String!email: String!age: Int }3、实现解析器 在Spring Boot项目中创建解析器处理GraphQL操作 Component public class UserResolver implements GraphQLQueryResolver, GraphQLMutationResolver {// 实现查询和突变方法Autowiredprivate UserRepository userRepository; public User userById(String id) {return userRepository.findById(id);}public ListUser users() {return userRepository.findAll();}public User createUser(UserInput input) {return userRepository.save(new User(input.getName(), input.getEmail(), input.getAge()));}public User updateUser(String id, UserInput input) {return userRepository.update(id, input);}public boolean deleteUser(String id) {return userRepository.delete(id);} }React集成GraphQL 1、添加Apollo Client依赖 安装必要的包来在React项目中使用Apollo Client yarn add apollo/client graphql2、配置Apollo Client 在src/app.ts或你的入口文件中设置Apollo Client import React from react; import ReactDOM from react-dom; import App from ./App; import { ApolloClient, InMemoryCache, ApolloProvider } from apollo/client;const client new ApolloClient({uri: http://localhost:8080/graphql,cache: new InMemoryCache(), });ReactDOM.render(React.StrictModeApolloProvider client{client}App //ApolloProvider/React.StrictMode,document.getElementById(root) );3、构建UI组件 创建React组件来进行用户的增、删、改、查操作使用useQuery和useMutation钩子与GraphQL交互。 创建用户列表组件 使用useQuery钩子获取用户列表 import { useQuery, gql } from apollo/client;const GET_USERS gqlquery GetUsers {users {idnameemailage}} ;function Users() {const { loading, error, data } useQuery(GET_USERS);if (loading) return pLoading.../p;if (error) return pError :(/p;return (div{data.users.map(({ id, name, email, age }) (div key{id}p{${name} (${email}) - Age: ${age}}/p/div))}/div); }创建增、删、改操作的React组件 使用useMutation钩子来创建、更新和删除用户。这里是一个创建用户的示例 import { useMutation, gql } from apollo/client;const CREATE_USER gqlmutation CreateUser($userInput: UserInput!) {createUser(userInput: $userInput) {idname}} ;function AddUser() {let input;const [createUser, { data }] useMutation(CREATE_USER);return (divformonSubmit{e {e.preventDefault();createUser({ variables: { userInput: { name: input.value, email: emailexample.com, age: 30 } } });input.value ;}}inputref{node {input node;}}/button typesubmitAdd User/button/form/div); }
http://www.pierceye.com/news/239938/

相关文章:

  • 彭阳网站建设多少钱嘉兴专业的嘉兴专业网站建设项目
  • 网站建设导航分哪几类公司网站大全
  • 网站建设 实训题安能建设总公司网站打不开
  • 莱西网站建设龙岗中心城有学网站建设
  • 重庆技术网站建设宝安做网站哪家好
  • 仿制网站建设写网站建设的软文
  • 0基础网站建设教程wordpress去掉rss订阅
  • 爱网站查询外贸推广具体是做什么
  • 商务网站价格找人做效果图那个网站
  • 上传到网站租一个服务器要多少钱
  • 网站制作服务合同安徽建设工程信息网文件
  • 成都企业网站建设公司正规的跨境电商平台有哪些
  • 中山工程建设信息网站网站监控系统
  • 个人网站想添加支付功能怎么做北京二次感染最新消息
  • 上海注册汽车租赁公司网站模板对seo的影响
  • 上海松江做网站公司wordpress 网站暂停
  • 太仓苏州网站建设网站的规划与建设课程设计
  • 遵义住房城乡建设厅网站电子商务网店毕业设计
  • 惠州市博罗县建设局网站防静电产品东莞网站建设技术支持
  • 茂名整站优化百度一下 你知道首页
  • 郑州网站微信微博维护品牌网站建设流程图
  • 网站建站销售怎么做做门窗安装去哪些网站找生意
  • 太原建站司点击查看荆州网站开发
  • 个人音乐网站开发宁波网站推广工作室电话
  • 建设部网站 造价工程师wordpress忘了秘密
  • 如何分析一个网站建设策划案湖南网络推广公司大全
  • 惠州市建设工程交易中心网站如何制作网页导航栏
  • 保山网站建设哪家好做led视频好的网站
  • 如何利用网站策划做好网站建设申请域名要多少钱
  • 专业做公司logo的网站谷歌网站推广方案