针对取代SOAP的RestfulAPI的学习

举报
yd_281320545 发表于 2022/11/22 20:43:37 2022/11/22
【摘要】 Restful背景Restful: 是一种架构设计风格,提供了设计原则和约束条件。可以做到前后端开发时的分离。 使用JSON格式的REST风格的API具有简单、易读、易用的特点。PRC: 远程方法调用,是一种给允许分布式应用程序调用网络上不同计算机的可用服务的机制SOAP: 简单对象访问协议,早期比较流行,使用xml传递数据,但是其定义了很繁杂的模块和api等,后来被restful风格的a...

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

image-20221122160417134.png

整个项目代码架构如下,这里直接放打码太乱了,放到csdn了,整理不易,支持一下把

https://download.csdn.net/download/weixin_42172261/87120524

image-20221122202311032.png

  • api怎么用呢,这里用postman来模拟一下,还是放两张图把

http://192.168.218.128/1.0/users/registerapi使用

image-20221122202516104.png

http://192.168.218.128/1.0/users/loginapi使用
image-20221122202537500.png

整个项目工作流程
image-20221122195755902.png

环境问题解决

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.cnfbind-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.cnfbind-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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。