Download the PHP package daothink/think-api without Composer

On this page you can find all versions of the php package daothink/think-api. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package think-api

Latest Stable Version Total Downloads Latest Unstable Version License

think-api 是给开发者提供的一套针对thinkphp的API扩展工具,帮助开发者方便快捷的建造自己的API应用。

该包是针对thinkphp5.1以上版本

简介

这个包提供了以下等工具:

thinp-api 是给开发者提供的一套API工具,帮助你方便快捷的建造你自己的API,有什么使用问题和反馈建议请在issue中提出

另外,欢迎Star和Fork该项目😄😄😄😄😄

安装

安装该扩展包需要环境支持

修改你的 composer.json 文件,然后执行 composer update 把最后一个版本的包加入你的项目

或者你可以在命令行执行 composer require 命令

路由

如果你使用了自定义路由,则可以使用路由版本管理

版本组

使用think-api的版本管理方法来创建版本

或者使用门面(Facede)

你想一个分组返回多个版本,只需要传递一个版本数组

创建路由

因为每个版本分组了,你可以为相同 URL 上的同一个路由创建不同响应

访问特定路由版本

默认访问配置文件中的默认版本

但是,我们可以在Http的头信息中附带Api-Version参数,或者直接在在url或body中附带version参数来访问指定版本

响应

响应生成器

响应生成器提供了一个流畅的接口去方便的建立一个定制化的响应

要利用响应生成器, 你的控制器需要使用Zewail\Api\Api trait, 可以建立一个通用控制器,然后你的所有的 API 控制器都继承它。

然后你的控制器可以直接继承基础控制器。响应生成器可以在控制器里通过 $response 属性获取。

当然,也可以使用门面(Facade)来获取

简单响应
响应一个数组
响应一个元素
响应一个元素集合
分页响应

使用别名生成响应

捕获错误响应需要接管系统的异常处理机制,将系统config/app.php中的 exception_handle配置为Zewail\Api\Exceptions\handleException

返回一个错误响应

当然也可以返回成功的响应

方法名 状态码 说明
Continue 100 Continue
SwitchingProtocols 101 Switching Protocols
Processing 102 Processing
EarlyHints 103 Early Hints
OK 200 OK
Created 201 Created
Accepted 202 Accepted
NonAuthoritativeInformation 203 Non-Authoritative Information
NoContent 204 No Content
ResetContent 205 Reset Content
PartialContent 206 Partial Content
MultiStatus 207 Multi-Status
AlreadyReported 208 Already Reported
IMUsed 226 IM Used
MultipleChoices 300 Multiple Choices
MovedPermanently 301 Moved Permanently
Found 302 Found
SeeOther 303 See Other
NotModified 304 Not Modified
UseProxy 305 Use Proxy
TemporaryRedirect 307 Temporary Redirect
PermanentRedirect 308 Permanent Redirect
BadRequest 400 Bad Request
Unauthorized 401 Unauthorized
PaymentRequired 402 Payment Required
Forbidden 403 Forbidden
NotFound 404 Not Found
MethodNotAllowed 405 Method Not Allowed
NotAcceptable 406 Not Acceptable
ProxyAuthenticationRequired 407 Proxy Authentication Required
RequestTimeou 408 Request Timeou
Conflict 409 Conflict
Gone 410 Gone
LengthRequired 411 Length Required
PreconditionFailed 412 Precondition Failed
PayloadTooLarge 413 Payload Too Large
URITooLong 414 URI Too Long
UnsupportedMediaType 415 Unsupported Media Type
RangeNotSatisfiable 416 Range Not Satisfiable
ExpectationFailed 417 Expectation Failed
IAmATeapot 418 I\'m a teapot
MisdirectedRequest 421 Misdirected Request
UnprocessableEntity 422 Unprocessable Entity
Locked 423 Locked
FailedDependency 424 Failed Dependency
UnorderedCollection 425 Unordered Collection
UpgradeRequired 426 Upgrade Required
PreconditionRequired 428 Precondition Required
TooManyRequests 429 Too Many Requests
RequestHeaderFieldsTooLarge 431 Request Header Fields Too Large
UnavailableForLegalReasons 451 Unavailable For Legal Reasons
InternalServerError 500 Internal Server Error
NotImplemented 501 Not Implemented
BadGateway 502 Bad Gateway
ServiceUnavailable 503 Service Unavailable
GatewayTimeout 504 Gateway Timeout
HTTPVersionNotSupported 505 HTTP Version Not Supported
VariantAlsoNegotiates 506 Variant Also Negotiates
InsufficientStorage 507 Insufficient Storage
LoopDetected 508 Loop Detected
NotExtended 510 Not Extended
NetworkAuthenticationRequired 511 Network Authentication Required

添加其他响应数据

添加 Meta 数据

或者直接设置 Meta 数据的数组

设置响应状态码
添加额外的头信息
设置 LastModified
设置 ETag
设置 Expires
页面缓存控制

响应数据过滤

其中item collection paginator具有两个参数,第一个参数为模型数据,第二个参数为数据过滤列表

或者通过onlyexcept方法过滤数据

集中管理

提供了一个配置文件用于数据过滤或者说是数据资源的集中管理

使用该功能需要在thinkphp中新建一个配置文件resources.php

然后在返回接口数据的时候在item collection paginator第二个参数传入该标识即可

或者通过onlyexcept方法

item、collection、paginator的第二个过滤参数属性,会覆盖only与except方法

设置serializer

如果默认配置Array,想返回DataArray格式的数据,可以:

JWT

JWT相关知识大家百度一下吧,网上很多,直接上代码

创建Token

使用 JWT 门面的 attempt 方法来自动验证

这里使用了 email 和 password 来验证用户是否合法,如果你的用户是通过 mobile或其它字段作为标识,那么可以在 app\index\model\User 模型中,添加 jwtSub 字段:

当然,如果你的密码 不是用的 password (绝大多数都用这个,不排除少数奇怪的命名….),那么你可以添加 jwtPassword 字段:

这里验证psssword默认使用md5加密,绝大多数情况下这是不够安全的,很多都有自定义的加密方式,那么还有验证密码的方法,添加:

还可以直接通过用户对象实例创建token

还可以自定义 Payload 创建任意数据

用户认证

要通过http发送一个需要认证通过的请求,需要设置Authorization头

或者将token信息包含到URL中

解析token

resolveToken方法可以将token还原为payload数组

如果是从user模型创建的token,那么还可以使用authenticate方法,直接验证用户,成功后返回用户模型,失败返回false

当然还有更加手动的方法

配置

该扩展包共有3个配置文件

配置文件仅支持全局配置目录使用

配置文件可以在vendor/zewail/think-api/config目录下找到,也可以手动创建它们

api.php

version

api的默认版本

serializer

api返回的数据格式,可选:

resources.php

该配置文件用于数据过滤管理,在返回接口数据的时候在item collection paginator第二个参数传入该标识来使用

jwt.php

ttl

token的过期时间, 默认为120分钟,单位分钟

deviation

允许误差时间,默认为60秒,单位秒

algorithm

加密算法,支持:

key

如果使用了HMAC加密方式,则需要配置该项,为自定义字符串

privateKeyPath

如果使用了RSA加密方式,则需要配置该项,为.pem结尾的私钥文件路径

publicKeyPath

如果使用了RSA加密方式,则需要配置该项,为.pem结尾的公钥文件路径

user

如果需要使用用户操作相关方法,则需定义该项,为用户模型所在路径,如

授权协议

MIT license

CHANGELOG

1.1.0-beta1


All versions of think-api with dependencies

PHP Build Version
Package Version
Requires php Version >=5.6
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package daothink/think-api contains the following files

Loading the files please wait ....