后台仿京东商城接口设计缺陷吐槽篇

电商系统静态原型(仿京东) 电商系统静态原型(仿京东),分为网站前台,运营商管理后台,商家管理后台。设计优美,和京东类似,上传方便需要的小伙伴 立即下载

办公室刚battle完,忍不住来吐槽一下,先上图,再说需求和接口设计

个人理解的排序:不管是综合排序还是销量排序亦或者是价格升序降序,请求的参数类型应该是下图模式


class SortType {

    companion object{

        val TYPE_PRICE_UP = 1

        val TYPE_PRICE_DOWN = 2

        val TYPE_SALE_COUNT = 3

        val TYPE_SYNTHESIZE = 4
    }
    
}

fun getRequestBody(map:HashMap<String,Any>){
        map.apply { 
            put("type", TYPE_PRICE_DOWN)
        }
    }

事情起因呢,就是咱这后台设计接口,以为需求只有价格升序降序,所以定义一个boolean类型判断排序是升序还是降序,在博主核对接口的时候发现少了综合排序,在和产品确认需求点击综合排序没有弹出下拉框选项后,确定综合就一种排序方式,后台呢给接口设计有增加一种boolean类型判断排序是否未综合排序,后台的排序理解如下:

fun getRequestBody(map:HashMap<String,Any>){
        map.apply {
            put("是否是综合", "是")
            put("是否是降序","否")
        }
        
        when("是否是综合"){
            "是" ->{
                
            }
            "否" ->{
                when("是否是降序"){
                    "是" ->{

                    }
                    "否" ->{
                        
                    }
                }
            }
        }
    }

若干年以后呢,ios的哥们开发是接口传递的参数把是否为综合当成综合降序升序传递参数,这就导致android端和ios端显示排序不一致了,后台一看界面以为自己做了综合降序升序排序,一直认为自己没有任何问题,还闹心的很,估计是自己都忘了自己当初为什么要加这个参数了吧(牛逼的很咱也惹不起,咱就是不理会,跑来水一篇博客)

这个锅该怎么正确的甩呢,两部分:

1.点击综合排序时,ios传综合为false,价格排序为true/false,后台查询的是价格排序而非综合排序(后台以为查的是综合排序降序,自己都没看一眼自己写的代码张口就来)
2.如果一开始后台的接口设计都如我上面理解的一个type对应多个类型就不会有这个问题,当初我还多次要求后台修改接口参数,后台不想改,怎么简单怎么来,所以自己的锅自己背

再提一点,咱这后台的接口没法适应多变的需求,假如某一天需求增加口碑排序,评价排序,咱这后台要怎么写呢?!!肯定是boolean大法再来几个变量,汗…

咱这后台水平怎么样你们自己品,咱也不好说,咱也不敢问,怕打扰他开心的玩游戏刷剧!!咱是能避则避,锋芒过盛惹不起!!!

各位读者有何看法欢迎在下方评论区交流

仿京东商城(部分功能)前端+后台 仿京东商城部分功能,从注册登录,首页展示,搜索框,到页面的详情,加入购物车,将购物车存储到redis中。后台使用Spring+SpringMVC+MyBatis+Redis实现。对初学者是一个非常好的联系项目,不大也不小,而且先后台都有涉及。 立即下载

相关推荐

京东商城Open API通用接口源码及开发实例(轻开版20151121)

通用接口实现类LinkJOS 扩展于:public class LinkJOS extends LinkOAuth2(LinkOAuth2 extends JspEasy) 构造函数 LinkJOS(HttpServletRequest request,HttpServletResponse response) 京东JOS接口访问函数 public String link2(String link,String method,Bag sys,Bag apps,String appSecret,String file,String FileField) 作用:访问京东JOS平台的所有接口 参数: String link,京东JOS平台接口访问地址,目前固定为:https://api.jd.com/routerjson String method,向京东JOS平台提交数据时的方法,需要应用级别参数时建议用POST方法,不需要时用GET(参见后边的实例) Bag sys,系统级别参数书包(一般只需在接口参数文件中放入接口方法即可,参见后边的实例) Bag apps,应用级别参数书包(在接口参数文件中放入必须的应用级别参数,若不需要应用级别参数时直接用new Bag(-1)构造一个空书包即可,参见后边的实例) String appSecret,应用证书中的App Secret,前边已经设置,固定用"@{pPage:app_secret}"即可 String file,调用上传文件接口上传文件(如图片)到京东JOS平台时的文件全名(含相对路径,如:images/logo.png),不是调用上传文件接口时为空字符串即可(参见后边的实例) String FileField,调用上传文件接口上传文件(如图片)到京东JOS平台时的字段名,配合前边的参数,不是调用上传文件接口时为空字符串即可(参见后边的实例) 返回为京东JOS平台接口对应的JSON格式的字符串 JSON文本解析方法 public void parseJson(String json) 作用:解析京东JOS平台接口返回的JSON格式的字符串,并根据内容生成N个对应的书包 参数:String json,京东JOS平台接口返回的JSON格式的字符串 根据JSON文本的内容在系统中生成N个书包,根书包名称为j0,下一层的josn文本内容生成的书包名称用上一层的Key放在上一层的书名中,下边用实例说明寻找对应书包的方法: 如店铺信息查询接口jingdong.vender.shop.query返回的json文本为 { "jingdong_vender_shop_query_responce": { "shop_jos_result": { "open_time": "", "shop_id": "", "category_main_name": "", "category_main": "", "vender_id": "", "brief": "", "logo_url": "", "shop_name": "" } } } 找出店铺信息书包名的方法如下 @{j0:jingdong_vender_shop_query_responce} @{@{pPage:bag}:shop_jos_result} 这时候的@{pPage:bag}即为需要的店铺信息书包名 具体用法请阅读下载包中的《京东卖家如何快速开发网店工具软件》

Vue商城实战项目,高仿京东,包含后台管理系统

一个使用Vue3 + Vite + Typescript开发的商城练习项目,包括商城前台和后台管理系统,技术栈包括:Vue、Vite、Typescript、Less、Vue Router、Pinia、Axios、Element Plus、ECharts、Mockjs。

随便写写,随便写写 4068

仿京东商城前后台(源码+文档+数据库脚本).zip

电子商务就是指以电子方式在网上完成产品或服务的一种销售,或购买和电子支付等业务交易的过程叫电子商务。电子商务的通常缩写为EC(Electronic Commerce),是一种全新的商务活动模式,它充分利用互联网的易用性、广域性和互通性,实现了快速可靠的网络化商务信息交流和业务交易。 电子商务根据各种参与交易的方式不同可以分为企业对企业和企业对公司,而电子商务网站可以根据功能设置的不同可以分为电子市场(E-marketplace)网站、电子销售(E-distributor)网站、电子购买(E-procurement)网站。其中,电子商务网站的设计就是在中立的立场上的,不但要考虑到购买方的不同和需求,也要考虑到销售方的利益。电子商务网站的主要服务对象是销售商,而电子购买网站的主要服务对象是买主,其目的说白了就是通过在网站上聚集大量的买主,在通过大宗的购买降低价格。有利于加速企业信息流通,为保证企业稳定发展奠定基础。

ElasticSearch仿京东搜索实战

ElasticSearch仿京东搜索实战:1.项目介绍、2.环境搭建、3.爬取数据、4.编写业务层、5.前后端交互、6.搜索高亮

雙馬程序猿 1401

基于Quartus II软件的FPGA综合实验——多功能数字钟

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、设计要求二、设计原理三、设计过程1.数码管扫描模块2.计时模块3.闹钟模块4.闹钟响铃模块5.数码管显示模块6.整点报时功能7.模式选择模块(计时器主控电路)四、实验中遇到的困难及解决方案五、总结 前言 FPGA综合实验——多功能数字钟 基于Quartus II软件 一、设计要求 设计一个能进行时、分、秒计时的十二小时制或二十四小时制的数字钟,并具有定时与闹钟功能,能在设定的时间发出闹铃音,能非常方便地对小时、分钟和秒进.

qq_53022342的博客 2万+

BugkuCTF-PWN题pwn2-overflow超详细讲解

解题思路 1)计算出get_shell_的地址偏移量 2)算出来之后就直接溢出到后门函数 知识点 x64函数调用规则 解题之前我们先学下linux x64的函数调用规则。 x64机器在调用某个函数前,比如int func(int a, int b, int c, int d, int e, int f, int g, int h),首先他会把前6个参数从左往右存入到寄存器rdi、rsi、rdx、rcx、r8、r9,其余参数存入到栈里,保存的顺序是从右往左入栈。比如abcdef会存入到寄存器里,然后一次入栈h

am_03的博客 3013

仿京东严选商城项目,集购物+支付+发货一体化架构项目解决方案

最近小编接看到了一个比较不错的严选商城项目,商城整体架构类似与京东/天猫/拼多多等大型购物平台以及APP平台,线上购物+支付+发货以及参加各种大型秒杀活动例如:618、双十一等一体化架构解决方案!...

m0_69860228的博客 895

告别手动维护!教你用SAP BAPI批量更新生产订单BOM组件(CO02工单)

本文详细介绍了如何利用SAP BAPI实现生产订单BOM组件的批量更新,解决传统手工操作(如CO02工单)效率低下的问题。通过核心函数解析和批量处理框架设计,帮助用户大幅提升工作效率,降低错误率,适用于物料主数据变更、季节性配方调整等场景。

weixin_30844577的博客 561

太强了!仿京东电商项目终于开源了~

推荐一个不错的入门级开源项目,基于SSM开发的,有前后端啥也不说,先看效果图,如下项目的整体结构,如下:好了,到这里,整个项目介绍的也差不多了,感兴趣的同学可以去下载一波~资源获取方法,...

程序员小灰的博客 1443

STM32CubeMX Nucleo F767ZI 教程(1)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 官网上买了个NUCLEO F767ZI 的开发板,144引脚的芯片,https://www.st.com/content/st_com/zh/products/evaluation-tools/prod

fafuwxm 2029

新手必看:Infineon Memtools烧录配置全流程(附常见错误解决方案)

本文为嵌入式开发新手提供了Infineon AURIX开发环境搭建与Memtools烧录的全流程实战指南。详细解析了ADS、DAS和Memtools三大核心工具的角色与协同关系,并重点讲解了Memtools的图形界面配置步骤、烧录操作流程,以及针对“无法连接设备”、“编程失败”等常见错误的系统性排查与解决方案,帮助开发者快速上手并规避典型陷阱。

weixin_29189377的博客 635

新版仿京东商城源码+支持商家入驻/多用户开店/WAP端

完整演示图放到压缩包了,因为是整站长图演示,本文不好放。其他说明:采用ShopNC B2B2C内核开发的,Install版(绝非还原数据库版)本系统采用多用户商家开店模式(包含商家独立管理中心+平台分佣结算模式+用户中心+全新商家入驻开店+全新店铺模板)模板中我们完美整合了自定义商品属性功能,仿京东用户中心UI设计,强大的商家管理中心功能,以及多套非常精美的商家店铺模板。全新的技术构架,全新的UI设计。总之有兴趣的自行去体验吧。wwefru.lanzouq.com/i4QbZ066i6sf...

wfergre的博客 752

手撕数美风控三板斧:device_fingerprint/device_id/hmac生成逻辑全解析

摘要:逆向分析数美风控核心参数生成机制 本文详细记录了逆向分析数美(Shumei)风控系统中三个关键参数(device_id、device_fingerprint、hmac)的生成逻辑。通过抓包分析和动态调试(使用Frida、IDA等工具)发现:device_id由设备IMEI和Android ID经MD5哈希生成;device_fingerprint融合23项设备与环境信息,并采用SHA-256哈希和动态环境检测;hmac则是参数+指纹+动态盐值的SHA-256签名。文章揭示了数美"设备指纹+动

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1476

京东API接口

item_get获得JD商品详情 “item”: { “num_iid”: “29186819959”, “title”: “MOCO夏季新品时尚V领条纹连衣裙 摩安珂 T01蓝白条色 S”, “desc_short”: “”, “price”: “419.00”, “total_price”: 0, “suggestive_price”: 0, “orginal_price”: “1199.0...

“退一步海阔天空”的博客 1万+

全志V3S嵌入式驱动开发(uboot移植)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 安装了ubuntu操作系统,有了开发板,下面就可以进行我们的开发工作了。第一步,我们要面临的问题就是uboot移植。一般来说,嵌入式的基础环境就是uboot、linux和rootfs。uboot完成一些基本硬件的初始化,比如cpu频率设置、ddr初始化、加载linux等等。早前,uboot的烧入比较麻烦,需要jtag工具才能完成。现在来说,很多soc支持系统直接从sd卡启动,这对开发

嵌入式-老费,一个分享专业嵌入式知识的blog 2821

【网络】叶脊(Spine-Leaf)网络拓扑下全三层网络设计与实践(二) - 网络规划

2. 全三层架构设计思路 采用全三层网络架构设计的出发点是: 使用尽量少的交换机高级功能,可以尽可能减少由于功能bug故障造成的问题; 使用尽量少的网络协议,以兼容不通厂商的网络设备 实现简单,易于维护,绝对可靠的路由协议; 通过控制路由来调度流量,尽量减少设备或协议的故障域; 牺牲高级功能带来的便捷,得到更高的可用性和性能; 由上述原则,本文的设计选择只使用静态路由和BGP...

因吹斯汀 1万+

ios循环调用同一个接口_接口调用方法之axios

在b站上跟着黑马的视频学的,相应的后端的接口也是黑马写的,谢谢黑马,然后自己总结了一下,发出来了。axiosaxios是一个第三方库,专门用来做接口调用,支持Promise语法,比fetch的功能更加强大官网:https://github.com/axios/axios首先打开官网----点击Code--点击下载ZIP,解压,在dist中有要引入的文件1. axios的APIaxios把各种请求方...

weixin_39888018的博客 682

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

京东联盟CPS API调用:我不想吐槽京东的接口。。。。

在调用接口之前,先要取得授权,这个看看接口文档就可以了。地址如下:https://jos.jd.com/doc/channel.htm?id=152 在京东云控制台:https://dev.jd.com/toList.action “新建应用”获得 调用接口的通用参数(App key/client_id、App secret/client_secret、access_token)。

Ada的专栏 2万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

微信小程序——仿写京东购物商城带源码

熟悉使用微信小程序开发工具,开发微信小程序项目。仿京东购物商城。首页按分块显示商品。点击“分类”tab,跳转到商品的分类页面。

lijingxiaov5的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

iOS开发小结 - 通过PUT请求上传数据

一般服务器上传数据一般都是用POST请求,这样通过AFNetworking的POST请求稳稳的,但是有一天遇到一个问题,服务器上传数据用的是PUT请求,发现用AFNetworking并不是那么好用,今天就来讲一下如何通过PUT请求上传数据。

W_C__L的博客 1万+

iOS 用NSURLSession实现PUT请求

之前从来没用过PUT请求,这个项目突然要用,于是就学了学。PUT请求和POST请求类似,只是PUT请求会把发送的文件放到服务器固定的路径里,而POST则只能把资源给服务器,需要服务器自己放置。在写请求的时候,先用了AFN,但是PUT请求不知道文件需要放到什么位置。开始放到param字典里,根本没用,还把后台搞崩了,之后就直接把param替换成图片,后台依然崩了。在上网查这方面资料后,我发现绝大多数资

操作猛如虎的博客 2949

Flutter-防京东商城项目-通过接口搜索商品数据-16

一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希望未来技术之巅上有你们也有我。 学习目标: 1.通过接口搜索商品 第一步:搜索控制器 var _keywords; 第二步:获取搜索值 child: TextField( autofocus: true, decoration: InputDecoration( border: Outl

weixin_38716347的博客 258

开源项目: FlycoTabLayout

开源项目效果调用实例必练基本功Android studio 项目导入依赖compile路径dependencies{ compile 'com.android.support:support-v4:23.1.1' compile 'com.flyco.tablayout:FlycoTabLayout_Lib:2.0.2@aar' }FlycoTabLayout是一个Android T

AnalyzeSystem的博客 8万+
上一篇: Android内存泄漏分析案例1
下一篇: 仿淘宝双色球走势图自定义控件
AnalyzeSystem
博客等级 码龄11年 204粉丝 114原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值