Madlifer
(Madlifer)
1
背景介绍
遇到一个问题,我希望部署一个部署开源项目,但这作者后来加了一个API,把部分功能改成API传json了,这就导致我建立这个开源项目仍然要从他的服务器获取json,我的域名虽然已经获得了授权,可他的API速度在国内真的很慢,不考虑反向代理了,反向代理不稳定。
需求介绍
所以我的需求就是 遍历这个API的数据,然后自建这个API。这个API现在是有两个格式的数据
当我访问 https://target.site/?map=Sumari 时,他会请求
https://target.site/api/get/layers?map=Sumari, 如下图:
这个API可以获取这个map下的几个模式。
然后当我点击按钮跳转到 https://target.site/?map=Sumari&layer=RAASv1 时,它会请求
https://target.site/api/get/layer?name=Sumari_RAAS_v1 ,如下图:
这个API可以获取到详细数据
我的疑问
我的需求上面已经提了 其实就是自建这个API,不通过他的API,项目源码我也有直接改API获取地址就可以了,但是这个API内容方面,只能通过手动一个一个复制粘贴么?有没有其他更快速的方式来获取?
2 Likes
稍微读了一下,看了下原站数据是干嘛的
你可以这样 就是你不是嫌他的API站点加载地图瓦片JSON太慢嘛
你先搓一个形如缓存中转Server,这个Server可以对你的前端进行照旧的JSON数据提供,请求过来时你第一次没有这个数据,所以此时写一个再请求对方api的的逻辑,下载到这个json,然后你保存起来,响应给你的前端。
至于后续何时更新上游数据,以及频次,或者获取时机
自己思考吧 
反正目的是自动化的提速前端加载,而且还要考虑对方上游数据更新,方便我方跟随更新
这样是最自然的了,看起来有点像CDN 
等等,为什么我在这个项目里看到了大量的map.json
madog
(麦叨哥)
9
我觉得缓存机制应该足够解决前端的访问问题了。
至于更新上游数据,可以利用服务器闲时定期的去更新已有的缓存数据。讲道理地图这玩意的数据更新也不会那么快。
至于访问上游,反代就算不稳定也是可以用的,如果获取数据失败还可以fallback到直连访问。要么就是借助赛博菩萨写一个代理访问(x)实现类似于cdn加速的效果。
xxdlovo
(筱筱动力)
11
用你熟悉的语言写个接口缓存就行, 逻辑就是先把对方的数据下载到本地json,自己请求再监测本地有没有数据. 没有就重新爬取. 没服务器的话可以用云函数部署接口,再让ai给你写代码就行
xxdlovo
(筱筱动力)
12
还有种方式, 你可以直接用cdn,让自己的域名指向对方, 缓存什么的由cdn来自动处理就行