六、项目发布 -- 4. 电子书详情页API开发、电子书列表API开发

news2024/11/20 10:43:37

电子书详情页API的编写

同理如下app.get中路由、回调;回调中要连接数据库、接收前端传过来的值、到数据库中做查询,然后回调(如果回调失败返回什么JSON,如果回调成功返回什么JSON);最后千万别忘记了关闭数据库的连接

发现获取失败

首先我们就要先考虑sql语句正不正确,如下fileName是undefined

那我们看看前端是否传了fileName,如下确实传了,仔细检查发现是fileName写成了filename

修改后可以看到详情展示成功

电子书列表API的编写

这个电子书列表的数据是用于书城首页那个分类,分类点进去后就展示这个分类的全部图书。所以这个数据需要是一个树状结构,然后包含所有的分类,分类下对应包含电子书这样子。

如下,同理通过app.get(),里面一个路由,一个回调;回调中连接数据库、到数据库中做查询;查询中sql语句、成功/失败回调;回调中如果成功返回什么数据、如果失败返回什么数据;

因为我们要做成树状结构,即有分类,分类下有对应图书,所以应该是创建一个对象来盛放这个树状数据,对象中是以key-value的形式,一个个key就是分类,value中就是那些图书,大致就是这样:

{体育类 : [ {图书1} ,{图书2},{图书3}..] ;经济学类:[ {图书8} ,{图书9} ..]}

怎么做呢,定义一个对象,遍历这个分类,让这个分类作为key,然后寻找数据库查询的数据中分类名等于这个分类名的图书都过滤出来,然后赋值给这个分类key即可

这样我们book/list就实现了,接下来我们还要实现book/falt-list

这样如下,搜索就能成功,这就是flat-list在起作用

书架API的编写

我们点击书架的清除缓存时,可以看到还少一个shelf接口

书架我们直接返回一个空数组就可以,因为我们目前并没有实现书架图书的在线缓存,之前那个缓存是tab栏点击缓存是某本电子书的缓存,所以我们这个书架图书的在线缓存我们并没有做,所以我们这个接口并不需要设计的太复杂

但是如上我们可以看到没有加号方框,就不能到书城中选书,很明显不能这样,所以回到前端代码

可以看到获取书架数据是先到缓存中获取,缓存中没有再去请求API,然后是获取的数据data下的bookList中获取的,所以不应该是直接给返回一个空数组,而是返回bookList,这个bookList是空数组

然后把后端代码提交到gitee上即可

这个.gitignore文件的作用是告诉Git哪些文件或文件夹不应该被跟踪或提交到版本控制中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1609803.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试:java中常见的锁

文章目录 概述并发编程三大特性java中常见的锁synchronized关键字(隐式锁)ReentrantLock 类ReadWriteLock 接口StampedLock 类 小结 概述 在Java中,锁是用于控制多个线程对共享资源的访问的一种机制。它有两个主要作用: 保证线程…

Pyqt5中设置matplotlib绘图区背景透明

Pyqt5中设置matplotlib绘图区背景透明 一、前言 最近组里接了学校的某项目,作者是团队里面负责做前端展示的,但是说实话,感觉QT做前端展示真不是很方便,开发过程中遇到不少棘手的问题。 其中一个卡了我一段时间的是界面画图表时…

ASP.NET基于Web的招投标系统的设计与实现

摘 要 招标拍卖的历史悠久,在近两千年的发展历程中,人们对拍卖的理论和技术做了大量的探讨。随着计算机网络技术的迅猛发展和日益成熟,为了提高招投标及采购工作的效率,为廉政建设和防止腐败提供技术保障,传统的拍…

计算机科学与导论 第十六章 安全

文章预览: 16.1引言16.1.1 安全目标16.1.2 攻击 16.2机密性16.2.1 对称密钥密码术16.2.2 非对称密钥密码术 16.1引言 为了安全,信息需要避开未授权的使用(机密性),保护信息不受到未授权的篡改(完整性),并且对于得到授权的实体来说是需要时可…

PSAvatar:一种基于点的可变形形状模型,用于3D高斯溅射的实时头部化身创建

PSAvatar: A Point-based Morphable Shape Model for Real-Time Head Avatar Creation with 3D Gaussian Splatting PSAvatar:一种基于点的可变形形状模型,用于3D高斯溅射的实时头部化身创建 Zhongyuan Zhao1,2, Zhenyu Bao1,2, Qing Li1, Guoping Qiu3,…

OpenWrt One/AP-24.XY 开源路由器发布,OpenWRT与Banana Pi社区合作

OpenWrt One/AP-24.XY 开源路由器 2024 年,OpenWrt 项目将迎来20 周年!OpenWrt 开源社区官方通过推出社区自己的第一个完全上游支持的硬件设计来庆祝这一周年纪念日。并与联发科,Banana Pi开源社区紧密合作,共同完成硬件的设计与…

运行django

确保app被注册 urls.py中编写url 视图对应关系 命令行启动 python manage.py runserver

图数据库Neo4J入门——Neo4J下载安装+Cypher基本操作+《西游记》人物关系图实例

这里写目录标题 一、效果图二、环境准备三、数据库设计3.1 人物节点设计3.2 关系设计 四、操作步骤4.1 下载、安装、启动Neo4J服务4.1.1 配置Neo4J环境变量4.1.2 启动Neo4J服务器4.1.3 启动Ne04J客户端 4.2 创建节点4.3 创建关系(从已有节点创建关系)4.4…

esp32 rst:0xf (BROWNOUT_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)

供电不足导致的 1、第1次出现 电脑usb电压不够,只有3.8V,给esp32s3供电,然后esp32带的模块太多,运行启动就一直报错 2、第2次出现 esp32带的模块单独电池供电,然后一运行MAX98357播放声音就重启 然后换模块单独充电…

月球地形数据介绍(LOLA)

月球地形数据介绍 LOLA介绍LOLA数据的处理与发布数据类型和格式投影坐标系SIMPLE CYLINDRICALPOLAR STEREOGRAPHIC 数据下载与浏览 LOLA介绍 目前最新的月球地形高程数据来源于美国2009年发射的LRO探测器。 “月球勘测轨道器”(Lunar Reconnaissance Orbiter,LRO)…

给一个新项目配置conda环境的完整流程,安装pytorch,dgl

创建环境,并指定python的版本,我这边指定为3.7: conda create --name [自定义的环境名] python3.7我这边假定我的环境名为grand: conda create --name grand python3.7创建成功后,初始化一下conda: source …

easyx库的介绍

前言 如果想要摆脱黑窗口的限制那么easyx图形库是一个好的选择 easyx的初认识 easyx是针对c的图形库,可以帮助c/c上手图形和游戏编程 所以要用easyx必须要用.cpp的后缀 1 easyx的原理 window的图形编程,最终都由window的底层API来实现 2 easyx的颜色 …

2010年认证杯SPSSPRO杯数学建模B题(第一阶段)交通拥堵问题全过程文档及程序

2010年认证杯SPSSPRO杯数学建模 交通拥堵问题 B题 Braess 悖论 原题再现: Dietrich Braess 在 1968 年的一篇文章中提出了道路交通体系当中的Braess 悖论。它的含义是:有时在一个交通网络上增加一条路段,或者提高某个路段的局部通行能力&a…

CRMEB PRO安装系统配置清单

统在安装完成之后,需要对系统进行一系列的配置,才能正常使用全部的功能,以下是官方整理的配置清单

组件安全(Solr、Shiro、Log4j、Jackson、FastJson、XStream)

Solr 主要基于HTTP和 Apache Lucene 实现的全文搜索服务器。 特征&#xff1a;图标识别 端口&#xff1a;8393 CVE-2019-0193&#xff08;远程命令执行漏洞&#xff09; 漏洞版本&#xff1a;Apache Solr < 8.2.0 利用条件&#xff1a; Apache Solr 的 DataImportHandler 启…

线上真实案例之执行一段逻辑后报错Communications link failure

1.问题发现 在开发某个项目的一个定时任务计算经销商返利的功能时&#xff0c;有一个返利监测的调度&#xff0c;如果某一天返利计算调度失败了&#xff0c;需要重新计算&#xff0c;这个监测的调度就会重新计算某天的数据。 在UAT测试通过&#xff0c;发布生产后&#xff0c…

【C++入门】类的6个默认成员函数、运算符重载、初始化列表、const成员、static成员

目录 引言 构造函数 引入构造函数 构造函数的特征 一些细节 析构函数 析构函数的特性 注意事项 拷贝构造函数 书写格式 使用细节 拷贝构造的典型应用场景 运算符重载 意义与格式 注意事项 赋值运算符重载 const成员 两个经典问题 再谈构造函数—初始化列…

『FPGA通信接口』汇总目录

Welcome 大家好&#xff0c;欢迎来到瑾芳玉洁的博客&#xff01; &#x1f611;励志开源分享诗和代码&#xff0c;三餐却无汤&#xff0c;顿顿都被噎。 &#x1f62d;有幸结识那个值得被认真、被珍惜、被捧在手掌心的女孩&#xff0c;不出意外被敷衍、被唾弃、被埋在了垃圾堆。…

使用http-parser解析http请求和响应数据

1 简介 http-parser是一个用C编写的HTTP消息解析器&#xff0c;专为高性能HTTP应用程序设计。它能够解析HTTP/1.0和HTTP/1.1的消息&#xff0c;包括头部、主体和连续行。当解析到特定的HTTP元素&#xff08;如请求行、头字段或消息体&#xff09;时&#xff0c;会触发相应的回调…

【前端面试3+1】15 CSS如隐藏元素、css块级元素和行内元素有哪些?两者有什么区别?、JavaScript中“==”与“===”的区别、【丢失的数字】

一、CSS如何隐藏元素&#xff1f; 1、使用 display: none; 这种方法会隐藏元素&#xff0c;并且不占据页面空间。元素会被完全移除&#xff0c;无法通过任何方式显示出来。 .hidden-element {display: none; }2、使用 visibility: hidden; 这种方法会隐藏元素&#xff0c;但仍然…