针对取代SOAP的RestfulAPI的学习
Restful背景
Restful: 是一种架构设计风格,提供了设计原则和约束条件。可以做到前后端开发时的分离。 使用JSON格式的REST风格的API具有简单、易读、易用的特点。
PRC: 远程方法调用,是一种给允许分布式应用程序调用网络上不同计算机的可用服务的机制
SOAP: 简单对象访问协议,早期比较流行,使用xml传递数据,但是其定义了很繁杂的模块和api等,后来被restful风格的api取代,
WSDL: Web Services Description Language,Web服务描述语言
在Restful中一切都被认为是资源,每个资源都有对应的RUI标识。
每个请求都是独立的,从客户端到服务器端的每个请求都包含所有必要的信息。
Restful只是一种设计风格而不是标准;主要用于客户端和服务器交互;Restful风格的api更简洁更有层次。
Restful相关约定
-
域名规范:尽量将api部署在专用域名下,例如
https://api.example.com
或者https://example.com/api/
-
版本规范:应该将api的版本好放到URL里或者http头信息中
-
路径规范:在Restful架构中,每个网址都代表一种资源,所以网址不能有动词,只能由名词,而且所用的名词往往与数据库的表明对应。
-
http动词如下表
请求类型 | 表示意义 |
---|---|
GET(select) | 从服务器取出资源 |
POST(create) | 在服务器创建一个资源 |
PUT(update) | 在服务器更新资源 |
DELETE(delete) | 在服务器中删除一个资源 |
Restful API示例
以一个用户注册的开发为例
基础url:
http://192.168.218.128/1.0/
,其中1.0表示api版本号。
- 用户注册:post提交
url: http://192.168.218.128/1.0/users/register
- 用户登录:post提交
url: http://192.168.218.128/1.0/users/login
- user表
id | username | password | createTime |
---|---|---|---|
int, (主键) | varchar(20) | varchar(32), (存md5) | timestamp |
整个项目代码架构如下,这里直接放打码太乱了,放到csdn了,整理不易,支持一下把
https://download.csdn.net/download/weixin_42172261/87120524
- api怎么用呢,这里用postman来模拟一下,还是放两张图把
http://192.168.218.128/1.0/users/register
api使用
http://192.168.218.128/1.0/users/login
api使用
整个项目工作流程
环境问题解决
ubuntu安装xdebug
1.安装xdebug
sudo apt-get install php-xdebug
2.找安装路径
find /usr/ -name "xdebug.so"
3.找php.ini配置文件
php -i | grep "php.ini"
4.php.ini文件末尾添加如下内容
[xdebug]
zend_extension="/usr/lib/php/20151012/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
5.重启apache2服务
sudo service apache2 restart
ubuntu解决mysql不允许root登录
思路就是先将plugin改成mysql_native_password,然后再设置密码。
查看plugin(这条命令没有作用):select user, plugin from mysql.user;
update mysql.user set plugin='mysql_native_password' where user='root';
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
flush privileges;
ubuntu配置mysql允许root远程登录
1.将/etc/mysql/mysql.conf.d/mysqld.cnf
中bind-address = 127.0.0.1
加#
注释掉
2.将user表中的host改成所有ip
update user set host = '%' where user ='root';
flush privileges;
解决kali下mysql不允许root登录
sudo mysql
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
flush privileges;
kali配置mysql允许root远程登录
1.将/etc/mysql/mariadb.conf.d/50-server.cnf
中bind-address = 127.0.0.1
加#
注释掉
2.mysql中授权123456密码登录root
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
3.重启mysql服务
ubuntu下开启php调试信息
1.修改配置文件pph.ini,改display_errors=Off为On
sudo vim /etc/php/8.1/cli/php.ini
2.修改配置文件/etc/apache2/apache2.conf,最后添加以下两行
php_flag display_errors on
php_value error_reporting 2039
3.重启
sudo service apache2 restart
ubuntu下安装php的mysql依赖
sudo apt install php-mysql
sudo service apache2 restart
ubuntu下apache开启htaccess
修改/etc/apache2/apache.conf
,在/var/www
模块改AllowOverride All
sudo a2enmod rewrite
sudo service apache2 restart
ubuntu下apache错误日志路径
/var/log/apache2/error.log
ubuntu下apache改网站根目录
sudo vim /etc/apache2/sites-available/000-default.conf
DocumentRoot /var/www/html/restful/
sudo service apache2 restart
- 点赞
- 收藏
- 关注作者
评论(0)