8000 GitHub - jadler/b2w-annotation
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

jadler/b2w-annotation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 

Repository files navigation

B2W Challenge (Annotation)

Descrição

Este projeto é resultado da separação do projeto processor, o outro projeto resultante desta separação encontra-se em b2w-processor.

Este projeto mantém um conjunto de anotações usadas para criar de forma automática a classe de Controller dos seus respectivos modelos.

Uso

Para criar a classe de controle é necessário adicionar a anotação @GenerateController na classe de modelo. É possível também criar consultas básicas nas classes de controle para os campos das classe de modelo adicionando a anotação @MappedProperty. Para cada campo anotado com @MappedProperty, um método getBy<Nome do Campo> será criado na classe Controller.

package br.com.jadler.models;

import br.com.jadler.annotation.MappedProperty
752A
;
import br.com.jadler.annotation.GenerateController;
import org.springframework.data.annotation.Id;

@GenerateController
public class Persons {

    @Id
    @MappedProperty
    private String id;

    @MappedProperty
    private String name;

    @MappedProperty
    private Integer age;

    // getters and setters

}

As anotações acima irão gerar uma nova classe PersonsController com os métodos PersonsController.getById(String value), PersonsController.getByName(String value) e PersonsController.getByAge(Integer value). O pacote aonde a nova classe Controller reside estará no mesmo nível do pacote da classe Models.

PersonsController

Resultado do processamento das anotações.

package br.com.jadler.controller;

import ...

@RestController
@RequestMapping("/persons")
@ApiOperation("...")
public class PersonsController {

    @Autowired
    protected MongoRepository<Persons, String> repository;

    @ApiOperation("...")
    @GetMapping({"", "/"})
    public Collection<Persons> list() {
        //...
    }

    @ApiOperation("...")
    @PostMapping({"/"})
    public Persons create(@Valid @RequestBody Persons c) {
        //...
    }

    @ApiOperation("...")
    @PutMapping({"/id/{id}"})
    public Persons modify(@PathVariable("id") String id, @Valid @RequestBody Persons c) {
        //...
    }

    @ApiOperation("...")
    @DeleteMapping({"/id/{id}"})
    public void delete(@PathVariable String id) {
        //...
    }

    @ApiOperation("...")
    @GetMapping(value = {"/id/{id}"})
    public Persons getById(@PathVariable("id") java.lang.String value) {
        //...
    }

    @ApiOperation("...")
    @GetMapping(value = {"/name/{name}"})
    public Persons getByName(@PathVariable("name") java.lang.String value) {
        //...
    }

    @ApiOperation("...")
    @GetMapping(value = {"/age/{age}"})
    public Persons getByAge(@PathVariable("age") java.lang.Integer value) {
        //...
    }
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

0