Created
September 25, 2012 17:02
-
-
Save fwbrasil/3783157 to your computer and use it in GitHub Desktop.
Subtrate rest
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
trait Person extends Entity { | |
var name: String | |
def nameAsUpperCase = | |
name.toUpperCase | |
} | |
object Person { | |
def personsWhereNameStartsWith(string: String) = | |
select[Person] where (_.name like string + "%") | |
} | |
class NaturalPerson(var name: String, var motherName: String) extends Person { | |
def modifyNameAndMotherName(name: String, motherName: String) = { | |
this.name = name | |
this.motherName = motherName | |
} | |
} | |
class LegalPerson(var name: String, var director: NaturalPerson) extends Person | |
/* | |
* Tipos de requisições | |
* GET - Transação read-only (se tiver alguma alteração vai dar erro) | |
* POST - Transação não read-only (pode fazer alterações) | |
* | |
* ************** | |
* QUERIES | |
* (Faz mais sentido usar GET!) | |
* ************** | |
* | |
* Obter todas pessoas | |
* http://fwbrasil.net/myApp/person/all | |
* | |
* Pesquisar pessoa por atributo | |
* http://fwbrasil.net/myApp/person/allWhere?nome=Flavio | |
* | |
* Pesquisar pessoa por atributo aninhado | |
* http://fwbrasil.net/myApp/legalPerson/allWhere?director.name=Flavio | |
* | |
* Obter uma pessoa dado ID (poderia usar o allWhere) | |
* http://fwbrasil.net/myApp/person/c7970067-a8e3-11e1-803c-0976a061ace5-10c9871e | |
* | |
* ************** | |
* BEHAVIORS | |
* (Faz mais sentido usar POST, a não ser que seja um método read-only) | |
* ************** | |
* | |
* Chamar construtor | |
* http://fwbrasil.net/myApp/naturalPerson/create?name=Flavio&motherName=Jandira | |
* | |
* Chamar um método de instância | |
* http://fwbrasil.net/myApp/person/c7970067-a8e3-11e1-803c-0976a061ace5-10c9871e/nameAsUpperCase | |
* | |
* Chamar um método de instância (getter) | |
* http://fwbrasil.net/myApp/person/c7970067-a8e3-11e1-803c-0976a061ace5-10c9871e/name | |
* | |
* Chamar um método de instância (setter) | |
* http://fwbrasil.net/myApp/person/c7970067-a8e3-11e1-803c-0976a061ace5-10c9871e/name?value=Novo nome | |
* | |
* Chamar um método de instância (delete) | |
* http://fwbrasil.net/myApp/person/c7970067-a8e3-11e1-803c-0976a061ace5-10c9871e/delete | |
* | |
* Chamar um método de instância com parâmetro | |
* http://fwbrasil.net/myApp/person/c7970067-a8e3-11e1-803c-0976a061ace5-10c9871e/modifyNameAndMotherName?name=Novo nome&motherName=Nova mae | |
* | |
* Chamar um método de classe | |
* http://fwbrasil.net/myApp/person/personsWhereNameStartsWith?string=Fla | |
* | |
* Navegar em métodos (getters) | |
* http://fwbrasil.net/myApp/legalPerson/c7970067-a8e3-11e1-803c-0976a061ace5-10c9871e/director/name | |
* | |
* Navegar em métodos (getter e método) | |
* http://fwbrasil.net/myApp/legalPerson/c7970067-a8e3-11e1-803c-0976a061ace5-10c9871e/director/modifyNameAndMotherName?name=Novo nome&motherName=Nova mae | |
* | |
* ************** | |
* OBSERVACOES | |
* ************** | |
* | |
* As chamadas que possuem o ID da entidade podem ser feitas sem colocar o tipo no caminho. Por exemplo | |
* http://fwbrasil.net/myApp/person/c7970067-a8e3-11e1-803c-0976a061ace5-10c9871e/name | |
* Pode ser chamado como: | |
* http://fwbrasil.net/myApp/c7970067-a8e3-11e1-803c-0976a061ace5-10c9871e/name | |
* Essa forma possui um pequeno custo de performance para detectar o tipo baseado no ID | |
* | |
* | |
* | |
* Se uma entidade possui outra entidade, será retornado somente o ID! Por exemplo: | |
* http://fwbrasil.net/myApp/legalPerson/c7970067-a8e3-11e1-803c-0976a061ace5-10c9871e | |
* | |
* Vai retornar | |
* { id: c7970067-a8e3-11e1-803c-0976a061ace5-10c9871e, name: Objective, director: c909019-a8e3-11e1-803c-0976a061ace5-10c9671e | |
* | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment