使用Rest API设计简单的博客网站

2023-11-17

博客根地址
https://mygithub.com

对于每个用户自己的博客网站都在这个根地址后加url信息。

使用Rest API进行设计

在这里设计如下API:

https://mygithub.com/...(username)/articles
https://mygithub.com/...(username)/profile

对于get请求时返回的错误码设计如下:

100 	//返回正确,成功获取到数据
404		//没有找到相关记录
101		//修改或者新建数据成功
102		//删除数据成功
103		//非法访问
  1. 首先是登录
    对于每个用户有一个自己的博客网站的名称,这个名称是唯一的,不会有重复,所以访问https://mygithub.com网站时需要输入用户名,这样才能确认登陆的自己的博客,为了安全性这里也需要设计密码,在后台对输入的用户名和密码进行匹配,如果成功就可进入相应的自己的博客页面。如果失败就返回错误信息。假设用户名为name,那么访问的页面就为https://mygithub.com/name
{
	"username": ...
	"passwd": ...
}
  1. 用户页面的管理
    在登陆成功后会进入用户博客主页面,在这个页面可以放置一些用户信息或者某些博客等用户想要展现的内容,这些信息的获取通过get https://mygithub.com/name来获取,在这个页面中需要设计相关按钮来跳转至用户博客界面,点击后通过get https://mygithub.com/name/articles得到用户的文章的相关信息。

    {
    	"articles":[{
    		"ID": ...
    		"content": ...
    		},{...}...]
    }
    

    这里对于返回信息需要进行安全的管理,如果博客的数量过多,那么获取到的数据就会非常的庞大,影响页面的响应,所以这里可以设置分页来获取博客,比如每个页面只有10篇文章,那么这里可以对articles的API进行通过参数来过滤:

    ?limit=10				//返回10篇文章
    ?page=1&per_page=10		//返回第一页,10篇文章
    
  2. 博客的操作
    在之前已经进入博客页面了,获取到了若干用户博客,这时用户可以用过点击博客进入相应的博客页面进行访问。在这里对每条博客都需要单独设置一个ID,这个ID对每个博客都是不同的,所以博客可以通过这个ID来进行分别,假设用户点击的博客ID是number,那么访问的请求为get https://mygithub.com/name/articles/number,这样就可以唯一的拿到用户需要的博客。在这个博客页面中用户可以查看、编辑,编辑成功后通过put https://mygithub.com/name/articles/number来对博客内容进行更新,这里put到后台的json信息有用户信息,博客ID,以及博客的内容,然后保存到数据库中。

    	{
    		"ID": ...
    		"content": ...
    		"time": ...
    		"info": "update"
    	}
    

    (这里用户的信息可以不再提交上去,在之前登陆时保存用户信息,这里直接使用即可)

    然后是删除文章,删除直接使用delete https://mygithub.com/name/articles/number即可制定删除相应的文章,返回用户信息,文章ID信息到后台即可。

    {
    	"ID": ...
    	"info": "delete"
    }
    
  3. profile用户信息页面
    在这个页面用于显示用户的信息get https://github.com/name/profile,返回用户的相关信息到网页上,在这里可以对用户信息进行更改,编辑完成后使用put https://github.com/name/profile来对信息进行更新。

    {
    	"userinfo": {
    		"passwd": ...
    		//(otherinfo)
    	},
    	"info": "update user info"
    }
    

使用swagger简单的实现了一些项目地址

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Rest API设计简单的博客网站 的相关文章

  • 从零开始使用docker部署Go Web App

    docker的基本使用 如何在ubuntu 16 04上安装docker 以及docker的基本使用可以参考我的上一篇博客 服务计算之玩转 Docker dockerfile的编写 要在docker上部署应用一定绕不开编写dockerfil
  • 服务计算——web 技术 - 处理 Request 与 Response

    基于Negroni框架的cloudgo应用 本次实验是基于Negroni框架的应用 我设计了一个简单的四则运算应用 这个应用设计主要分为两部分 中间件设计 以及 main函数的设计 接下来就分别对这两个部分进行介绍 中间件设计 printF
  • CentOS 7下go环境配置(超多问题)

    文章目录 1 安装Visual Code 2 获得golang安装包并安装 3 第一个GO语言程序 hello go 4 安装必要工具与插件 1 安装Visual Code 在终端中安装VScode 使用以下命令 sudo rpm impo
  • 风投与IT

    风投即风险投资 广义的风险投资泛指一切具有高风险 高潜在收益的投资 狭义的风险投资是指以高新技术为基础 生产与经营技术密集型产品的投资 根据美国全美风险投资协会的定义 风险投资是由职业金融家投入到新兴的 迅速发展的 具有巨大竞争潜力的企业中
  • 简单的坦克

    作业题目 坦克对战游戏AI设计 作业要求 从商店下载游戏 Kawaii Tank 或 其他坦克模型 构建 AI 对战坦克 具体要求 使用 感知 思考 行为 模型 建模 AI 坦克 场景中要放置一些障碍阻挡对手视线 坦克需要放置一个矩阵包围盒
  • VMware 搭建私有云

    我们的目的是在VMware workstation 上安装Centos 7系统 并配置用远程桌面访问虚拟机 在虚拟机上安装Centos 7 首先按照老师给出的博客 VirtualBox 安装 Centos 7 笔记 进行安装 博主使用的是v
  • 服务计算——Docker 简单使用

    Docker 简单使用 Docker是一个应用容器引擎 使用者可以将其应用以及所有需要的依赖打包到一个包中 然后发布到机器上进行运作 接下里我们就一步步了解一些Docker的使用 Docker安装 sudo apt get install
  • unity3d简单的粒子特效

    实现目标 实现一个简单的粒子效果 实现过程 首先创建一个空的对象 然后添加一个Particle System 编写控制粒子运动的脚本 在Start函数中对需要用到的参数进行初始化 particleArray new ParticleSyst
  • unity3d-血条的设计

    任务目标 完成血条的预制设计 任务要求 分别使用 IMGUI 和 UGUI 实现 使用 UGUI 血条是游戏对象的一个子元素 任何时候需要面对主摄像机 分析两种实现的优缺点 给出预制的使用方法 实现过程 使用IMGUI实现 创建一个空对象
  • 【服务计算】docker实践报告

    docker实践报告 环境说明 准备docker环境 运行第一个容器 Docker基本操作 MySQL与容器化 拉取MySQL镜像 构建docker镜像 MySQL容器使用 Docker compose与多容器应用自动化部署 docker网
  • VMware+CentOS7搭建私有云桌面服务

    VMware CentOS7搭建私有云桌面服务 1 安装VMware虚拟机工作台 官网下载安装包 版本 14 1 3 Pro 地址 https my vmware com en web vmware info slug desktop en
  • unity3D 巡逻兵

    游戏要求 创建一个地图和若干巡逻兵 使用动画 每个巡逻兵走一个3 5个边的凸多边型 位置数据是相对地址 即每次确定下一个目标位置 用自己当前位置为原点计算 巡逻兵碰撞到障碍物 则会自动选下一个点为目标 巡逻兵在设定范围内感知到玩家 会自动追
  • Linux如何启动网卡?

    在新安装的Linux系统 我们配置的网卡可能是没有激活的 此时ping不通外网 下载包的时候也会报错 下面我们看看如何启动网卡 1 首先获取root权限 输入su 再输入密码 密码是不显示的 注意小键盘有没有锁住 获取root权限后 输入提
  • Docker-Compose一键部署

    Docker Compose一键部署 文章目录 Docker Compose一键部署 Docker 网络模式 一键部署 Docker 网络模式 关于 docker 网络模式 有时间会另出一篇博客详细介绍 或者在该博客下继续补充 docker
  • IT领域的发展规律

    1 摩尔定律 Intel公司的创始人Gordon Moore 即摩尔 曾经提出 集成电路的集成度会每两年翻一番 后来 大家把这个周期缩短到18个月 这也就形成了摩尔定律 即每18个月 计算机等IT产品的性能会翻一番 或者说相同性能的计算机等
  • 关于迅雷与优酷

    迅雷的用户许可协议上有这样一段 4 4 使用本 软件 涉及到互联网服务 可能会受到各个环节不稳定因素的影响 存在因不可抗力 计算机病毒 黑客攻击 系统不稳定 用户所在位置 用户关机以及其他任何网络 技术 通信线路等原因造成的服务中断或不能满
  • 开发 web 服务程序

    github 任务目标 熟悉 go 服务器工作原理 基于现有 web 库 编写一个简单 web 应用类似 cloudgo 使用 curl 工具访问 web 程序 对 web 执行压力测试 根据代码提示 按照cloud go应用 编写相应的W
  • 贪吃蛇的初步尝试

    1 首先让贪吃蛇动起来 每输入一个方向字符 然后贪吃蛇朝那个方向移动一格 用 kbhit 函数可以让它朝一个方向一直移动 但那速度极快 于是用 speed 函数调整它的速度 达到每秒移动一格的效果 每一步的移动都用一个 for 循环实现 让
  • 使用Rest API设计简单的博客网站

    博客根地址 https mygithub com 对于每个用户自己的博客网站都在这个根地址后加url信息 使用Rest API进行设计 在这里设计如下API https mygithub com username articles http
  • 服务计算hw7

    任务目标 设计一个 web 小应用 展示静态文件服务 js 请求支持 模板输出 表单处理 Filter 中间件设计等方面的能力 不需要数据库支持 基本要求 支持静态文件服务 支持简单 js 访问 提交表单 并输出一个表格 对 unknown

随机推荐

  • 互联网产品经理面试二三事

    http www masterchat cn article article 250 1 html 摘要 面试是一件辛苦的工作 相信被面试也是一件不容易的事 找到一个适合企业的人才 并不一定是最优秀的 很不容易 尤其在互联网领域 优秀的人才
  • css设置文字垂直居中

    vertical align top 不断调整该值 就可以调整上下位置哦 如 上 vertical align top 中 vertical align middle 下 vertical align bottom 特殊 vertical
  • 数据预处理--缺失值和异常值的处理

    处理缺失数据的方法 1 用平均值 中值 分位数 众数 随机值等替代 如果预计该变量对于学习模型效果影响不大 可以对unknown值赋众数 这里认为变量都对学习模型有较大影响 效果一般 因为等于人为增加了噪声 不建议采取此法 数值型的话 均值
  • 正则表达式生成器

    正则表达式生成器 智能提示和表达式含义解析 高亮显示匹配项内容 高端智能正则表达式生成工具 支持生成语言 Javascript PHP Go rb python Java objc C 等 下载地址 https download csdn
  • 剑指 Offer :001整数除法

    题目描述 给定两个整数 a 和 b 求它们的除法的商 a b 要求不得使用乘号 除号 以及求余符号 注意 整数除法的结果应当截去 truncate 其小数部分 例如 truncate 8 345 8 以及 truncate 2 7335 2
  • 线性回归案例分析-预测PM2.5

    作业说明 给定训练集train csv 要求根据前9个小时的空气监测情况预测第10个小时的PM2 5含量 训练集介绍 1 CSV文件 包含台湾丰原地区240天的气象观测资料 取每个月前20天的数据做训练集 12月X20天 240天 每月后1
  • 特征工程:特征构造以及时间序列特征构造

    数据和特征决定了机器学习的上限 而模型和算法只是逼近这个上限而已 由此可见 特征工程在机器学习中占有相当重要的地位 在实际应用当中 可以说特征工程是机器学习成功的关键 那特征工程是什么 特征工程是利用数据领域的相关知识来创建能够使机器学习算
  • Xray 漏洞扫描工具使用方法

    本文仅供学习参考 严禁在未经网站管理员允许的情况下对网站进行扫描 本文仅供学习参考 严禁在未经网站管理员允许的情况下对网站进行扫描 本文仅供学习参考 严禁在未经网站管理员允许的情况下对网站进行扫描 滥用漏扫工具 违法国家安全法后果自负 申明
  • python中的tkinter包的使用--Menubar菜单窗口

    下面的例子讲如何制作简单的菜单 初始化窗口 点击子菜单New 继续点击其他子菜单 代码 import tkinter as tk window tk Tk window title my window window geometry 200
  • abaqus运行子程序出现无法打开输入文件msmpi.lib的解决办法

    好不容易搞定了abaqus Visual studio2013 Fortran 2013的关联 进行尝试时利用子程序进行计算时 出现了以下错误 End Compiling Abaqus Standard User Subroutines B
  • 【无标题】python:将一个表格的一行或几行数据通过双击或按键方式转移到另外一个表格中去

    import sys from PyQt5 QtWidgets import from move import QtWidgets QMainWindow 继承该类方法 class Utest window QtWidgets QMainW
  • Windows下安装使用mysqldumpslow

    首先需要安装Perl 在windows下安装Perl 安装过程很简单 从官网 http strawberryperl com 下载windows安装包 安装好之后 测试perl v 如果能显示版本号 表示安装成功 mysqldumpslow
  • muduo3学习笔记——Timestamp.{h,cc}

    首先代码中的一些要点 1 Timestamp类继承自boost less than comparable 模板类 只要实现 lt 即可自动实现 gt lt gt 2 使用到了BOOST STATIC ASSERT 编译时断言 3 gmtim
  • 查验身份证 C语言

    碎碎念念 这道题很坑 注意这里的权重是直接乘上去 一开始我乘的是百分之几 死活不知道哪里有问题 后来把一百乘上去 就对了 代码 include
  • 计算机网络第一章课后习题

    1 14 计算机网络有哪些常用的性能指标 速率 带宽 吞吐量 时延 时延带宽积 往返时间RTT 利用率 1 17 收发两端之间的传输距离为1000km 信号在媒体上的传播速率为2 x 10 8 m s 试计算以下两种情况的发送时延和传播时延
  • Android 开发中 Kotlin Coroutines 如何优雅地处理异常

    一 尽量少用 GlobalScope GlobalScope 是 CoroutineScope 的实现类 我们以前使用过的 launch async 函数都是 CoroutineScope 的扩展函数 GlobalScope 没有绑定任何
  • 为 Excalidraw 添加手写中文字体

    Excalidraw目前支持手写英文 不支持手写中文 导致画出的图不好看 那么 如何添加手写中文字体呢 准备一个手写中文字体 然后上传到一个存储位置 可以访问的地方 或者本地静态服务器 获取到一个可访问连接 可以放到云服务器上 可以放到Gi
  • 解决maven clean 报错 Process terminated

    设置一下maven
  • QT表格控件实例(Table Widget 、Table View)

    欢迎小伙伴的点评 相互学习 博主 本着开源的精神交流Qt开发的经验 将持续更新续章 为社区贡献博主自身的开源精神 文章目录 前言 一 图示实例 二 列表常用成员解析 三 代码实例解析 UI设计如下 mainwindow h main cpp
  • 使用Rest API设计简单的博客网站

    博客根地址 https mygithub com 对于每个用户自己的博客网站都在这个根地址后加url信息 使用Rest API进行设计 在这里设计如下API https mygithub com username articles http