REST API教程(PHP)

注意文章可能会断更,原文地址 :

knpuniversity.com(https://knpuniversity.com/screencast/rest/intro)

上一篇 

2.HTTP基础

在coding之前我们需要普及一点理论知识!嗨,回来!这些东西并不枯燥而且对于web开发非常重要!告诉你的脑袋,现在开始学习了!

HTTP

我们首先要说的是HTTP:一个英文缩写,其实就是描述客户端给服务端发送一个请求(Request),而我们的服务器对其作出一个响应(Response)。如果你把HTTP想象成一个函数,那么Request就是这个函数的参数,而这个函数return一个Response。就这么简单。

HTTP Request

GET /api/programmers HTTP/1.1
Host: CodeBattles.io
Accept: application/json,text/html

这是一个基础的Request,它有三个需要注意的地方:

1. /api/programmers 请求URI:统一资源标志符(uniform resource identifier)。注意这里在说资源(Resource)。每一个URI对于一个资源都是唯一的,就像你所待在的这个房间的位置。如果有5条URI,那么就可以说有5个资源。

2. GET 是HTTP请求方法,它描述了对这条资源所做的操作。最常的有GET和POST,还可能会遇到DELETE和PUT以及臭名昭著的PATCH,当然还有其他的,但是大多数我们都不用关心。

3. 除了第一行,后面的每一行我们叫做头信息(header)都是由冒号分隔开的格式,示例中有两行,但是客户端可以发送任何东西。考虑到这一点,来看一个POST请求,它可能是这样的。

POST /api/programmers HTTP/1.1
Host: CodeBattles.io
Authorization: Bearer b2gG66D1Tx6d89f3bM6oacHLPSz55j19DEC83x3GkY
Content-Type: application/json

{
    "nickname": "Namespacinator"
}

除了表明请求方式为POST,这个请求还增加主体(body)。这个请求有三条header,和上面不同两条,Authorization用于验证,另一条Content-Type则告诉了服务器,请求主体的内容是JSON格式。

HTTP Response

来看一个Response的示例:

HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-cache, private

{
    "nickname": "Namespacinator",
    "avatarNumber": 5,
    "tagLine": "",
    "powerLevel": 25
}

第一个要点是那个200:它表示一切安好,服务器给了我们正常的响应。响应状态码是API重要的组成部分。但也有一些人为此而争论,我们会在后面写项目时看到它为什么重要。

这个Response的头信息告诉了客户端响应内容不应该缓存,其格式为JSON,JSON的主体信息跟在最后。

HTTP令人敬畏但其实也就是这么简单,Got it? 好的,一起继续努力吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值