Created
December 6, 2012 19:43
-
-
Save dhollenbeck/4227658 to your computer and use it in GitHub Desktop.
Backbone.js and slim framework exmaple
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// define a user model | |
App.models.User = Backbone.RelationalModel.extend({ | |
urlRoot: '/api/users/', | |
defaults: { | |
first_name: '', | |
name_last_name: '', | |
email: '' | |
} | |
}); | |
//create an empty user in client memory | |
var user = new App.models.User(); | |
//assign some values and save to server | |
user.save({ | |
first_name: 'Dan', | |
last_name: 'Hollenbeck', | |
email: '[email protected]' | |
}); | |
//after creating the user the server returns all of the attributes of mode. | |
//so some where else in the application, after a successful save | |
// print the auto increment of the created record | |
console.log( user.get('id')); | |
//reading data from the server | |
var user2 = new App.models.User(); | |
user2.set({ | |
id: 123 | |
}); | |
user2.fetch(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require_once '../../../settings.php'; | |
require '../../../api.php'; | |
$api = new ApiSlim(); | |
$api->post('/users/',function() use ($api){ //create | |
try { | |
$user = Model\User::instance(); | |
$fa = $api->fields(); //get the json data from the body of the request and decode it to an array | |
$id = $user->create($fa); | |
$record = $user->read($id); | |
$api->ok($record); | |
} catch(Exception $e){ | |
$api->exception($e); //handle exceptions in a way that enforces a restful response. | |
} | |
}); | |
$api->get('/users/:id', function($id) use ($api){ //read | |
try { | |
if(!validate::required($id)) throw new BaseException('Missing user_id.'); | |
if(!validate::integer($id)) throw new BaseException('Invalid user_id.'); | |
$user = Model\User::instance(); | |
$result = $user->read($id); | |
$api->ok($result); | |
} catch(Exception $e){ | |
$api->exception($e); | |
} | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment