223 lines
6.5 KiB
PHP
Executable File
223 lines
6.5 KiB
PHP
Executable File
<?php
|
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
|
?>
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>REST Server Tests</title>
|
|
|
|
<style>
|
|
|
|
::selection { background-color: #E13300; color: white; }
|
|
::-moz-selection { background-color: #E13300; color: white; }
|
|
|
|
body {
|
|
background-color: #FFF;
|
|
margin: 40px;
|
|
font: 16px/20px normal Helvetica, Arial, sans-serif;
|
|
color: #4F5155;
|
|
word-wrap: break-word;
|
|
}
|
|
|
|
a {
|
|
color: #039;
|
|
background-color: transparent;
|
|
font-weight: normal;
|
|
}
|
|
|
|
h1 {
|
|
color: #444;
|
|
background-color: transparent;
|
|
border-bottom: 1px solid #D0D0D0;
|
|
font-size: 24px;
|
|
font-weight: normal;
|
|
margin: 0 0 14px 0;
|
|
padding: 14px 15px 10px 15px;
|
|
}
|
|
|
|
code {
|
|
font-family: Consolas, Monaco, Courier New, Courier, monospace;
|
|
font-size: 16px;
|
|
background-color: #f9f9f9;
|
|
border: 1px solid #D0D0D0;
|
|
color: #002166;
|
|
display: block;
|
|
margin: 14px 0 14px 0;
|
|
padding: 12px 10px 12px 10px;
|
|
}
|
|
|
|
#body {
|
|
margin: 0 15px 0 15px;
|
|
}
|
|
|
|
p.footer {
|
|
text-align: right;
|
|
font-size: 16px;
|
|
border-top: 1px solid #D0D0D0;
|
|
line-height: 32px;
|
|
padding: 0 10px 0 10px;
|
|
margin: 20px 0 0 0;
|
|
}
|
|
|
|
#container {
|
|
margin: 10px;
|
|
border: 1px solid #D0D0D0;
|
|
box-shadow: 0 0 8px #D0D0D0;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<div id="container">
|
|
<h1>REST Server Tests</h1>
|
|
|
|
<div id="body">
|
|
|
|
<h2><a href="<?php echo site_url(); ?>">Home</a></h2>
|
|
|
|
<p>
|
|
See the article
|
|
<a href="http://net.tutsplus.com/tutorials/php/working-with-restful-services-in-codeigniter-2/" target="_blank">
|
|
http://net.tutsplus.com/tutorials/php/working-with-restful-services-in-codeigniter-2/
|
|
</a>
|
|
</p>
|
|
|
|
<p>
|
|
The master project repository is
|
|
<a href="https://github.com/chriskacerguis/codeigniter-restserver" target="_blank">
|
|
https://github.com/chriskacerguis/codeigniter-restserver
|
|
</a>
|
|
</p>
|
|
|
|
<p>
|
|
Click on the links to check whether the REST server is working.
|
|
</p>
|
|
|
|
<ol>
|
|
<li><a href="<?php echo site_url('api/example/users'); ?>">Users</a> - defaulting to JSON</li>
|
|
<li><a href="<?php echo site_url('api/example/users/format/csv'); ?>">Users</a> - get it in CSV</li>
|
|
<li><a href="<?php echo site_url('api/example/users/id/1'); ?>">User #1</a> - defaulting to JSON (users/id/1)</li>
|
|
<li><a href="<?php echo site_url('api/example/users/1'); ?>">User #1</a> - defaulting to JSON (users/1)</li>
|
|
<li><a href="<?php echo site_url('api/example/users/id/1.xml'); ?>">User #1</a> - get it in XML (users/id/1.xml)</li>
|
|
<li><a href="<?php echo site_url('api/example/users/id/1/format/xml'); ?>">User #1</a> - get it in XML (users/id/1/format/xml)</li>
|
|
<li><a href="<?php echo site_url('api/example/users/id/1?format=xml'); ?>">User #1</a> - get it in XML (users/id/1?format=xml)</li>
|
|
<li><a href="<?php echo site_url('api/example/users/1.xml'); ?>">User #1</a> - get it in XML (users/1.xml)</li>
|
|
<li><a id="ajax" href="<?php echo site_url('api/example/users/format/json'); ?>">Users</a> - get it in JSON (AJAX request)</li>
|
|
<li><a href="<?php echo site_url('api/example/users.html'); ?>">Users</a> - get it in HTML (users.html)</li>
|
|
<li><a href="<?php echo site_url('api/example/users/format/html'); ?>">Users</a> - get it in HTML (users/format/html)</li>
|
|
<li><a href="<?php echo site_url('api/example/users?format=html'); ?>">Users</a> - get it in HTML (users?format=html)</li>
|
|
</ol>
|
|
|
|
</div>
|
|
|
|
<p class="footer">Page rendered in <strong>{elapsed_time}</strong> seconds. <?php echo (ENVIRONMENT === 'development') ? 'CodeIgniter Version <strong>'.CI_VERSION.'</strong>' : '' ?></p>
|
|
</div>
|
|
|
|
<script src="https://code.jquery.com/jquery-1.12.0.js"></script>
|
|
|
|
<script>
|
|
// Create an 'App' namespace
|
|
var App = App || {};
|
|
|
|
// Basic rest module using an IIFE as a way of enclosing private variables
|
|
App.rest = (function restModule(window) {
|
|
// Fields
|
|
var _alert = window.alert;
|
|
var _JSON = window.JSON;
|
|
|
|
// Cache the jQuery selector
|
|
var _$ajax = null;
|
|
|
|
// Cache the jQuery object
|
|
var $ = null;
|
|
|
|
// Methods (private)
|
|
|
|
/**
|
|
* Called on Ajax done
|
|
*
|
|
* @return {undefined}
|
|
*/
|
|
function _ajaxDone(data) {
|
|
// The 'data' parameter is an array of objects that can be iterated over
|
|
_alert(_JSON.stringify(data, null, 2));
|
|
}
|
|
|
|
/**
|
|
* Called on Ajax fail
|
|
*
|
|
* @return {undefined}
|
|
*/
|
|
function _ajaxFail() {
|
|
_alert('Oh no! A problem with the Ajax request!');
|
|
}
|
|
|
|
/**
|
|
* On Ajax request
|
|
*
|
|
* @param {jQuery} $element Current element selected
|
|
* @return {undefined}
|
|
*/
|
|
function _ajaxEvent($element) {
|
|
$.ajax({
|
|
// URL from the link that was 'clicked' on
|
|
url: $element.attr('href')
|
|
})
|
|
.done(_ajaxDone)
|
|
.fail(_ajaxFail);
|
|
}
|
|
|
|
/**
|
|
* Bind events
|
|
*
|
|
* @return {undefined}
|
|
*/
|
|
function _bindEvents() {
|
|
// Namespace the 'click' event
|
|
_$ajax.on('click.app.rest.module', function (event) {
|
|
event.preventDefault();
|
|
|
|
// Pass this to the Ajax event function
|
|
_ajaxEvent($(this));
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Cache the DOM node(s)
|
|
*
|
|
* @return {undefined}
|
|
*/
|
|
function _cacheDom() {
|
|
_$ajax = $('#ajax');
|
|
}
|
|
|
|
// Public API
|
|
return {
|
|
/**
|
|
* Initialise the following module
|
|
*
|
|
* @param {object} jQuery Reference to jQuery
|
|
* @return {undefined}
|
|
*/
|
|
init: function init(jQuery) {
|
|
$ = jQuery;
|
|
|
|
// Cache the DOM and bind event(s)
|
|
_cacheDom();
|
|
_bindEvents();
|
|
}
|
|
};
|
|
}(window));
|
|
|
|
// DOM ready event
|
|
$(function domReady($) {
|
|
// Initialise the App module
|
|
App.rest.init($);
|
|
});
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|