javascript - BackboneJS Significance of Model/Collection urlRoot/URL -


let's have person model/collection below;

define([     'base/basemodel' ], function(basemodel) {     var person = basemodel.extend({         idattribute: "personid",         urlroot: "manapp/person/",         defaults: {             "personid": null         }     return person; });  define([     'base/basecollection',     'model/person' ], function(basecollection, person) {     var personcollection = basecollection.extend({         url: "manapp/person",         model: person     });     return personcollection; }); 

as can see, have urlroot/url attribute in model/collection.

my question significance of specifying values attribute? corresponding rest resource? if yes, operation ? when use model , collection them ?

the urlroot , url define server paths request sent.

edit: backbone docs:

url:

returns relative url model's resource located on server. if models located somewhere else, override method correct logic.

urlroot:

specify urlroot if you're using model outside of collection, enable default url function generate urls based on model id. "[urlroot]/id" normally, won't need define this.

when using end mvc framework such laravel implements rest api, can define path in router , handle request path controller object.
i'll use laravel illustration, because makes clear.

when define example:

urlroot: "/api_v1/entities/parents" 

laravel implements 'resourceful' controllers can handle different rest calls sent specific urlroot on server:

route::resource('entities/parents', 'parentscontroller'); 

where 'parentscontroller' implements set of methods handle different rest calls can occur.

'get' not http verb can use, 'post', 'put' or 'delete'.

in backbone: 'get', call 'fetch()' on object.
'post', call 'save()' on object.
'delete', call 'destroy()' on object.
'put', call 'save()' on object, after fetched model has been updated. example:

    var parent_model = new parent_model({'id': 1});      parent_model.fetch();      parent_model.set('parent_name', 'some_parent');      parent_model.save();  

in above example, 'put' request sent following path:

/api_v1/entities/parents/1 

the controller implements function handles rest call on server this:

public function update($id){ //update code db here };  

aside these standard rest calls, laravel implements 'index' method, doesn't take id parameter, , handles generic 'get' request.
tend use fetching collections server:
example, index() method parents return parents, , not work on 1 specific parent record.

hope helps.


Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -