发布一个开源的新闻api(整理后就开源)
目录
说明:
基础说明
其他说明:
通用接口:
登录:
注册:
更改密码(需要token)
更换头像(需要token)
获取用户列表(需要token):
上传文件(5000端口):
获取文件(5000端口)源码文件,db文件均不能获取:
验证token(需要token):
获取系统时间:
文件接口(需要用前面获取文件的接口访问):
公告:
App介绍:
视频类新闻和文章类新闻的个数(扇形图表分析):
视频类前十文章的总得分、阅读量、点赞量、评论量数据(柱状图表分析):
一周内文章总数趋势数据(折线图表分析):
新版apk地址:
新闻类接口:
新闻列表:
点赞新闻(需要token):
取消点赞新闻(需要token):
发布新闻(需要token):
获取新闻分类下所有新闻:
关键字搜索新闻:
获取热门新闻:
获取轮播图:
获取用户发布的列表(需要token):
获取随机视频:
获取用户点赞的列表(需要token):
API运行和postman测试图:
编辑
关于开源:将在源码全部整理结束后开源,大家可以前往222.187.232.63:39999体验demo版本
点名表扬
说明:
首先先放出基于api写的app
基础说明
*部分接口需要token,即头里加入Authorization字段,token通过登录json获取
Demo api地址: 222.187.232.63:39999
Demo 文件管理地址: 222.187.232.63:5000
例如获取新闻轮播图:http://222.187.232.63:39999/news/banner
其他说明:
代码量前后端合计约6k行,较轻量
Token加入:Head里加入Authorization参数
响应参数likearray返回的是一个类似数组的字符串。需要获取后手动用split()函数去切割
由于部分数据来自网络,部分数据来自本地,本地路径考虑可移植性,没有写入完整路径,需要手动判定图片是否带有http://或https://
开发者说明:
此app前后端完全开源,前端采用java android编写,后端使用python,代码量约5k,较轻量
默认api地址为:127.0.0.1+端口号39999,文件访问地址:127.0.0.1+端口号5000
可以通过/libs/Service_Utils.py进行修改ip地址和api端口号
后端通过python编写,使用httpserver + Flask框架(主要处理文件)处理http请求
使用jwt进行动态授权token,需要获取用户,例如点赞、评论均需要传token获取用户
大部分数据存入sqlite数据库,部分数据例如公告以文件方式存储,便于修改
python打包数据可能是数据传输问题,有时候会少掉一个},可以通过此段代码解决这个问题
public static String verjson(String jsontext) {
try {
JSONObject jsonObject=new JSONObject(jsontext);
return jsontext;
} catch (JSONException e) {
return jsontext +"}";
}
}后端逻辑我懒得改了修改密码,只要传入token就可以修改,需要前端写验证(其实也不用,因为一般只有登录才能拿到token)
接下来是api文档:
通用接口:
登录:
接口名:/login
请求方式:post
参数:
username:用户名
password:密码
注册:
接口名:/Reg
请求方式:post
参数:
username:用户名
password:密码
avater:头像
更改密码(需要token)
接口名:/update_password
请求方式:post
参数:
password:密码
更换头像(需要token)
接口名:/update_avatar
请求方式:post
参数:
avater:头像
获取用户列表(需要token):
接口名:/personlist
请求方式:post
上传文件(5000端口):
接口名:/upload
请求方式:post
参数:
file:文件
获取文件(5000端口)源码文件,db文件均不能获取:
接口名:/路径名
请求方式:get
验证token(需要token):
接口名:/vertoken
请求方式:get
获取系统时间:
接口名:/gettime
请求方式:get
文件接口(需要用前面获取文件的接口访问):
公告:
接口名:/profile/notfication
请求方式:get
App介绍:
接口名:/profile/instructio
请求方式:get
视频类新闻和文章类新闻的个数(扇形图表分析):
接口名:/profile/percent
请求方式:get
视频类前十文章的总得分、阅读量、点赞量、评论量数据(柱状图表分析):
接口名:/profile/percent
请求方式:get
一周内文章总数趋势数据(折线图表分析):
接口名:/profile/trend
请求方式:get
新版apk地址:
接口名:/docs/newsapp.apk
请求方式:get
新闻类接口:
新闻列表:
接口名:/news/list
请求方式:get
参数(默认20一页):
pagenum:从哪页开始
pagenum:显示大小
点赞新闻(需要token):
接口名:/news/like
请求方式:get
参数(默认20一页):
Id:新闻的id
取消点赞新闻(需要token):
接口名:/news/unlike
请求方式:get
参数(默认20一页):
Id:新闻的id
发布新闻(需要token):
接口名:/news/create
请求方式:post
参数(如果要传视频type写视频,content写地址):
title:标题
content:正文
type:类型
cover:图像
获取新闻分类下所有新闻:
接口名:news/type=值
请求方式:get
关键字搜索新闻:
接口名:news/search=值
请求方式:get
获取热门新闻:
接口名:news/hot
请求方式:get
获取轮播图:
接口名:news/banner
请求方式:get
获取用户发布的列表(需要token):
接口名:news/pushlist
请求方式:get
获取随机视频:
接口名:/randomvideo
请求方式:get
获取用户点赞的列表(需要token):
接口名:news/likelist
请求方式:get
获取评论:
接口名:news/likelist
请求方式:get
参数:
Id:视频/新闻的id号
API运行和postman测试图:
关于开源:将在源码全部整理结束后开源,大家可以前往222.187.232.63:39999体验demo版本
点名表扬
感谢以下搬运工帮我宣传文章
http://element-ui.cn/article/show-1494297.aspx
https://www.ngui.cc/article/show-1153128.html
https://www.lmlphp.com/user/629051
https://www.ppmy.cn/news/628760.html
https://www.lmlphp.com/user/629939/article
防盗:
本文由福州职业技术学校 软件技术 温辉 qq:2151335401,3135144152编写
欢迎搬运,请复制上一行
相关文章:

发布一个开源的新闻api(整理后就开源)
目录 说明: 基础说明 其他说明: 通用接口: 登录: 注册: 更改密码(需要token) 更换头像(需要token) 获取用户列表(需要token): 上传文件(5000端口): 获取文件(5000端口)源码文件,db文件均不能获取: 验证token(需要token): 获取系统时间: 文件…...

3d max省时插件CG MAGIC功能中的材质参数可一键优化!
渲染的最终结果就是为了让渲染效果更加真实的体现。 对于一些操作上,可能还是费些时间,VRay可以说是在给材质做加法的路上越走越远,透明度、凹凸、反射等等参数细节越做越多。 对于材质参数调节的重要性大家都心里有数的。 VRay材质系统的每…...

什么是变量提升(hoisting)?它在JavaScript中是如何工作的?
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 变量提升(Hoisting)⭐ 变量提升的示例:⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&…...
.git内存清理方式
查看前15个大文件 git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -15 | awk {print$1})"删除文件夹(public/housimg文件夹目录) git filter-branch --tree-filter rm -rf publ…...

i.MX6ULL开发板无法进入NFS挂载文件系统的解决办法
问题 使用NFS网络挂载文件系统后卡住无法进入系统。 解决办法 此处不详细讲述NFS安装流程 查看板卡挂载在/home/etc/rc.init下的自启动程序 进入到../../home/etc目录下,查看rc.init文件,首先从第一行排查,查看/home/etc/netcfg文件代码内容&…...

七夕特辑——3D爱心(可监听鼠标移动)
前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄ÿ…...

C++函数模板和类模板
C另一种编程思想称为泛型编程,主要利用的技术是模板 C提供两种模板机制:函数模板和类模板 C提供了模板(template)编程的概念。所谓模板,实际上是建立一个通用函数或类, 其类内部的类型和函数的形参类型不具体指定, 用…...
【Unity】编辑器下查找制定文件下的所有特定资源
需求上很简单,就是在编辑器下,找到某个制定文件下的所有特定资源(UnityEngine.Object)。Unity 没有提供专门的 API,我一开始想在网上搜索代码,发现没有现成可以直接用的。 功能实现本身并不复杂,…...

分布式唯一ID实战
目录 一、UUID二、数据库方式1、数据库生成之简单方式2、数据库生成 - 多台机器和设置步长,解决性能问题3、Leaf-segment 方案实现4、双 buffer 优化5、Leaf高可用容灾 三、基于Redis实现分布式ID四、雪花算法1、雪花算法介绍2、 雪花算法生产环境架构:3…...
el-element日期时间组件限制可选时间范围
<el-date-pickerv-model"formData.meetingTime"type"datetime"value-format"yyyy-MM-dd HH:mm:ss"style"width: 100%"placeholder"请选择日期"clearable:picker-options"pickerOptions"></el-date-picke…...
【李沐】3.3线性回归的简洁实现
1、生成数据集 import numpy as np import torch from torch.utils import data from d2l import torch as d2l true_w torch.tensor([2, -3.4]) # 定义真实权重 true_w,其中 [2, -3.4] 表示两个特征的权重值 true_b 4.2 # 定义真实偏差 true_b,表示…...

Ghost-free High Dynamic Range Imaging withContext-aware Transformer
Abstract 高动态范围(HDR)去鬼算法旨在生成具有真实感细节的无鬼HDR图像。 受感受野局部性的限制,现有的基于CNN的方法在大运动和严重饱和度的情况下容易产生重影伪影和强度畸变。 本文提出了一种新的上下文感知视觉转换器(CA-VIT)用于高动态…...

过来,我告诉你个秘密:送给程序员男友最好的礼物,快教你对象学习磁盘分区啦!小点声哈,别让其他人学会了!
[原文连接:来自给点知识](过来,我告诉你个秘密:送给程序员男友最好的礼物,快教你对象学习磁盘分区啦!小点声哈,别让其他人学会了!) 再唱不出那样的歌曲 听到都会红着脸躲避 虽然会经常忘了我依然爱着你 …...

Cadence+硬件每日学习十个知识点(38)23.8.18 (Cadence的使用,界面介绍)
文章目录 1.Cadence有共享数据库的途径2.Cadence启动3.Cadence界面菜单简介(file、edit、view、place、options)4.Cadence界面的图标简介5.我的下载资源有三本书 1.Cadence有共享数据库的途径 答: AD缺少共享数据库的途径,目前我…...

React Native Expo项目,复制文本到剪切板
装包: npx expo install expo-clipboard import * as Clipboard from expo-clipboardconst handleCopy async (text) > {await Clipboard.setStringAsync(text)Toast.show(复制成功, {duration: 3000,position: Toast.positions.CENTER,})} 参考链接:…...

React源码解析18(5)------ 实现函数组件【修改beginWork和completeWork】
摘要 经过之前的几篇文章,我们实现了基本的jsx,在页面渲染的过程。但是如果是通过函数组件写出来的组件,还是不能渲染到页面上的。 所以这一篇,主要是对之前写得方法进行修改,从而能够显示函数组件,所以现…...

vscode ssh 远程 gdb 调试
一、点运行与调试,生成launch.json 文件 二、点添加配置,选择GDB 三、修改启动程序路径...

云原生 AI 工程化实践之 FasterTransformer 加速 LLM 推理
作者:颜廷帅(瀚廷) 01 背景 OpenAI 在 3 月 15 日发布了备受瞩目的 GPT4,它在司法考试和程序编程领域的惊人表现让大家对大语言模型的热情达到了顶点。人们纷纷议论我们是否已经跨入通用人工智能的时代。与此同时,基…...

PHP酒店点菜管理系统mysql数据库web结构apache计算机软件工程网页wamp
一、源码特点 PHP 酒店点菜管理系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 代码下载 https://download.csdn.net/download/qq_41221322/88232051 论文 https://…...
【面试复盘】知乎暑期实习算法工程师二面
来源:投稿 作者:LSC 编辑:学姐 1. 自我介绍 2. 介绍自己的项目 3. 编程题 判断一个链表是不是会文链表class ListNode: def __init__(self, val, nextNone):self.val valself.next nextdef reverse(head):pre Nonep headwhile p ! No…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...