如何将一堆 json 文件变成 API 用于接口访问?

2 天前
 IMZQZ

我想到的方法,各位看看对不对: 1.先根据 json 内容进行建表 2.将 json 导入数据库 3.写后端代码 4.写接口

那么问题来了,我不会写代码,怎么办? 有没有什么学习路径或者有 AI 工具帮助做这个项目?

1922 次点击
所在节点    程序员
22 条回复
hutoer
2 天前
试试 json-server
txx
2 天前
json to graphql ?
OneLiteCore
2 天前
最近刚好做过类似的东西,简单说下:

1. 用 FastAPI 和 Python 搭建简单的脚手架,用户以 JSONArray 的形式传入 文件名

2. 接口接收到文件名后从某个硬盘目录上去查找对应的 "文件名.json" 文件

3. Python 可以直接用 import json 包来解析文件成为 dict ,这一步也算是用来验证 json 的格式是否合法或者做一些校验

4. 将 dict 转化成 string 作为 body 和 200 状态码返回就行了

5. 用 docker 和 python 的镜像打包成 .tar 文件发送到你的云服务器

6. 云服务器 sudo docker load -i XXXX.tar 镜像,然后用 docker compose 配置端口映射到本地的 8000 并启动

7. 用 Nginx 配置当访问 /api/ 路径的时候,倒向本机的 8000 端口
TimG
2 天前
用 Python 的 fast-api 吧,入门很简单。代码多少得会写一点,不然错了都不好排查。
OneLiteCore
2 天前
整个流程还要配置域名、防火墙、http 自带加密和后台校验、json 文件和日志的定期备份啥的。我是自己要开发一个应用的后台所以需要自己处理这一整套的东西。
OneLiteCore
2 天前
但是如果你不需要逻辑,只是要纯粹可以让客户端可以访问到服务器上的 json 数据的话,我个人觉得最简单的办法就是直接用 Nginx 管理静态的 json 文件数据。甚至数据不敏感而且并不怎么重要的话,你直接扔 gitee 或者 github 上然后有个 Raw 按钮,点击就可以直接下载了。
janda
2 天前
丢 oss 、直链请求
PhDLuffy
2 天前
放 github ,直连
ntedshen
2 天前
说真的。。。哥们你顶着这个头像问怎么 json 转 api 我还以为是什么数据库在打广告才点进来看的。。。
结果你是真的不会写?
ashin
2 天前
likeman
1 天前
不需要数据处理的话,直接丢 nginx ,然后请求链接
maocat
1 天前
啊,有这么麻烦吗,去到目录里面执行
python -m http.server 不就好了
junan
1 天前
随便找一个在线 mock 的网站
kiracyan
1 天前
直接 python 建个文件访问 直接读取
IMZQZ
1 天前
谢谢楼上各位
下面是一个我的示例 json
{
"status": {
"code": 200,
"messages": [
"Success."
]
},
"data": [
{
"articleId": 0,
"articleSub": 0,
"freightGroupId": 83900,
"issueDate": "0001-01-01T00:00:00",
"effectiveDate": "0001-01-01T00:00:00",
"hazard": false,
"articleNotes": [],
"articles": [
{
"articleId": 83980,
"articleSub": 0,
"freightGroupId": 83900,
"class": "100",
"description": "Billiard or Pocket Billiard (Pool) Tables, with other than stone or slate slabs (beds), KD, or with legs folded to underside of table top, see Notes, items 83982 and 83984, in boxes, crates or Package 1317",
"issueDate": "0001-01-01T00:00:00Z",
"effectiveDate": "0001-01-01T00:00:00Z",
"hazard": false,
"articleNotes": [
{
"noteReferenceId": 83982,
"text": "NOTE-With each table there may be included not more than four cues and the equipment necessary for playing."
}
],
"articles": []
},
{
"articleId": 83995,
"articleSub": 0,
"freightGroupId": 83900,
"class": "77.5",
"description": "Bubble Forming Compounds, plastic, see Note, item 83996, in boxes",
"issueDate": "0001-01-01T00:00:00Z",
"effectiveDate": "0001-01-01T00:00:00Z",
"hazard": false,
"articleNotes": [
{
"noteReferenceId": 83996,
"text": "NOTE-One blowing tube may be included for each inner container."
}
],
"articles": []
},
{
"articleId": 84060,
"articleSub": 0,
"freightGroupId": 83900,
"class": "85",
"description": "Dart Games, consisting of steel tipped darts and targets, in boxes",
"issueDate": "0001-01-01T00:00:00Z",
"effectiveDate": "0001-01-01T00:00:00Z",
"hazard": false,
"articleNotes": [],
"articles": []
}
]
}
]
}
IMZQZ
1 天前
@ashin 谢谢 我去研究下
IMZQZ
1 天前
@OneLiteCore 昨天我也看了 fastAPI 还在尝试中
IMZQZ
1 天前
@OneLiteCore 不需要那么复杂 其实就是为了让别人通过关键词 搜索所有的 json 文件 然后将关键词相关的内容 返回就行
vZexc0m
1 天前
直接放对象存储上得了。
caoyang5689
1 天前
@likeman 确实, 不需要数据处理的话用这个就行, 划分数据的话可以拆分文件.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1103007

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX