php 创建简单的Restful WebAPI(三)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php 创建简单的Restful WebAPI(三),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3159字,纯文字阅读大概需要5分钟。
内容图文
上篇记录了怎样实现route,本篇记录怎么实现request,response。
Request 处理请求
<?php class Request { private$request_vars; private$data; private$http_accept; private$method; private$ID; publicfunction __construct($id = null) { $this->request_vars = array(); $this->data = array(); $this->http_accept = ‘application/json‘; $this->method = ‘get‘; $this->ID = $id; $this->processRequest(); } publicfunction processRequest() { $request_method = strtolower($_SERVER[‘REQUEST_METHOD‘]); $this->setMethod($request_method); $request_vars = $_GET; if($request_vars != ‘‘){ $this->setRequestVars($request_vars); } $data = file_get_contents(‘php://input‘); if($data != ‘‘){ $this->setData(json_decode($data,TRUE)); } } publicfunction setID($id) { $this->ID = $id; } publicfunction setData($data) { $this->data = $data; } publicfunction setMethod($method) { $this->method = $method; } publicfunction setRequestVars($request_vars) { $this->request_vars = $request_vars; } publicfunction getID() { return$this->ID; } publicfunction getData() { return$this->data; } publicfunction getMethod() { return$this->method; } publicfunction getHttpAccept() { return$this->http_accept; } publicfunction getRequestVars() { $this->request_vars[‘id‘] = $this->ID; return$this->request_vars; } } ?>
代码十分简单,就是从request获取请求method,querystring,请求body数据(json格式)。
Response 发送响应
<?php class Response { publicfunction __construct() { } publicfunction sendResponse($status = 200, $body = ‘‘, $content_type = ‘application/json‘) { $status_header = ‘HTTP/1.1 ‘ . $status . ‘ ‘ . $this->getStatusCodeMessage($status); header($status_header); header(‘Content-type: ‘ . $content_type . ‘; charset=utf-8‘); echo$body; exit; } publicfunction getStatusCodeMessage($status) { $codes = Array( 100 => ‘Continue‘, 101 => ‘Switching Protocols‘, 200 => ‘OK‘, 201 => ‘Created‘, 202 => ‘Accepted‘, 203 => ‘Non-Authoritative Information‘, 204 => ‘No Content‘, 205 => ‘Reset Content‘, 206 => ‘Partial Content‘, 300 => ‘Multiple Choices‘, 301 => ‘Moved Permanently‘, 302 => ‘Found‘, 303 => ‘See Other‘, 304 => ‘Not Modified‘, 305 => ‘Use Proxy‘, 306 => ‘(Unused)‘, 307 => ‘Temporary Redirect‘, 400 => ‘Bad Request‘, 401 => ‘Unauthorized‘, 402 => ‘Payment Required‘, 403 => ‘Forbidden‘, 404 => ‘Not Found‘, 405 => ‘Method Not Allowed‘, 406 => ‘Not Acceptable‘, 407 => ‘Proxy Authentication Required‘, 408 => ‘Request Timeout‘, 409 => ‘Conflict‘, 410 => ‘Gone‘, 411 => ‘Length Required‘, 412 => ‘Precondition Failed‘, 413 => ‘Request Entity Too Large‘, 414 => ‘Request-URI Too Long‘, 415 => ‘Unsupported Media Type‘, 416 => ‘Requested Range Not Satisfiable‘, 417 => ‘Expectation Failed‘, 500 => ‘Internal Server Error‘, 501 => ‘Not Implemented‘, 502 => ‘Bad Gateway‘, 503 => ‘Service Unavailable‘, 504 => ‘Gateway Timeout‘, 505 => ‘HTTP Version Not Supported‘ ); return (isset($codes[$status])) ? $codes[$status] : ‘‘; } } ?>
生成response。
这两个类为工具类,实现也不复杂,功能单一,需要继续丰富修改。
原文:http://www.cnblogs.com/coldlern/p/3954569.html
内容总结
以上是互联网集市为您收集整理的php 创建简单的Restful WebAPI(三)全部内容,希望文章能够帮你解决php 创建简单的Restful WebAPI(三)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。