JavaRush /ื‘ืœื•ื’ Java /Random-HE /ื”ืื‘ื™ื‘ ืœื ืžืคื—ื™ื“. ืฉืœื™ื˜ื” ื‘-REST ืฉืœืš
ะŸะฐะฒะตะป
ืจึธืžึธื”

ื”ืื‘ื™ื‘ ืœื ืžืคื—ื™ื“. ืฉืœื™ื˜ื” ื‘-REST ืฉืœืš

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”
ืชื•ื›ืŸ ืžื—ื–ื•ืจ ื”ืžืืžืจื™ื ืฉื™ืžื•ืฉ ื—ื•ื–ืจ ื‘ืขื‘ื•ื“ื•ืช ืฉืœ ืžื™ืฉื”ื• ืื—ืจ ื”ื•ื ืขื ื™ื™ืŸ ืงื“ื•ืฉ ืœื›ืœ ืžืคืชื— ๐Ÿ˜Œ ื›ื“ื™ ืœื”ืžืฉื™ืš ื”ืœืื”, ืฆืจื™ืš ืœื”ื‘ื™ืŸ ืืช ื”ื™ืกื•ื“ื•ืช ืฉืœ ืจืฉืช ืžื—ืฉื‘ื™ื, ื”ื ื” ืกื“ืจืช ืžืืžืจื™ื . ืฉื™ืžื• ืœื‘ ืœื ืงื•ื“ื•ืช ื”ืขื™ืงืจื™ื•ืช: ืื™ืš HTTP ืขื•ื‘ื“, ืžื” ื”ื GET, POST, PUT, ืกื˜ื˜ื•ืกื™ ืชื’ื•ื‘ื”, MVC, ืงืจื ื‘ื ืคืจื“ ืขืœ JSON ื•ืกื“ืจื” . ื–ื” ื™ื”ื™ื” ืฉื™ืžื•ืฉื™ ืœื™ื™ืฉื ืืช ื”ื“ื•ื’ืžื” ื”ืžื•ืฆืขืช ืขื servlets, ื–ื” ื™ืขื–ื•ืจ ืœืš ืœืื”ื•ื‘ ืžื’ืฃ ืื‘ื™ื‘ ื‘ื›ืœ ืœื™ื‘ืš. ื™ื™ืฉื•ื ืื‘ื™ื‘-boot ืœื“ื•ื’ืžื” ืžืกื“ืจื” ื–ื• ื”ื•ื ื“ื™ ืคืฉื•ื˜, ืืš ื”ื•ื ื™ืขื–ื•ืจ ืœื›ื ืœื”ื‘ื™ืŸ ืืช ื”ืžื”ื•ืช ืฉืœ MVC. ืœืžื˜ื” ื™ื”ื™ื” ืงื™ืฉื•ืจ ืœืคืจื•ื™ืงื˜ ืžืขื ื™ื™ืŸ ื™ื•ืชืจ. ื›ื“ื™ ืœื”ื›ื™ืจ ืืช REST ื•ื”ืฉื™ืžื•ืฉ ื‘ื• ื‘ืื‘ื™ื‘, ืงืจื ืืช ืฉืœื•ืฉืช ื”ืžืืžืจื™ื ื”ืืœื” . ื‘ืžืืžืจ ื”ืจืืฉื•ืŸ ืชืงืจื ืžื” ื–ื” REST. ื”ืžืืžืจ ื”ืฉื ื™ ืžื“ื‘ืจ ืขืœ ื‘ืงืฉื•ืช ื•ืชื’ื•ื‘ื•ืช, ื”ืงืคื“ ืœืงืจื•ื ื•ืœืฉื™ื ืœื‘ ืœื”ืขืจื” ืฉืœ ื”ื—ื‘ืจ ืคื™ื“ืœ. ื”ืžืืžืจ ื”ืฉืœื™ืฉื™ ื™ืฆื™ืข ื“ื•ื’ืžื” ืžืขืฉื™ืช ืœื™ื™ืฉื•ื ื‘ืื‘ื™ื‘, ื”ื’ื™ืฉื” ืœื™ืฆื™ืจืช ืืคืœื™ืงืฆื™ื” ืื™ื ื” ืฉื•ื ื” ื‘ื”ืจื‘ื” (ืžื•ืขื™ืœ ืœื”ืกืชื›ืœ ื•ืœื”ืฉื•ื•ืช), ืœื™ื™ืฉื ืื•ืชื”. ืฉื™ืžื• ืœื‘ ืœืžืงื•ื ืฉื‘ื• ื”ื ืžื“ื‘ืจื™ื ืขืœ HttpStatus, ResponseEntity <?> (ืื <?> ืžื‘ืœื‘ืœ, ืื– ืงืจืื• ืืช ืคืจืง 13. ื”ื›ืœืœื•ืช ืžืชื•ืš "Java. A Beginner's Guide", ื”ืจื‘ืจื˜ ืฉื™ืœื“ื˜), ื‘ืื•ืชื• ืžืืžืจ ืงืจืื• ืขืœ POSTMAN ( ื‘ื ื•ืกืฃ ืกืจื˜ื•ืŸ ืงืฆืจ ืขืœ ื–ื” ) ื”ืชืงืŸ ืืช POSTMAN, ืืชื” ืœื ืฆืจื™ืš ืืช ื›ืœ ื”ืชื›ื•ื ื•ืช, ืจืื” ื›ื™ืฆื“ ืœื™ืฆื•ืจ ืฉืื™ืœืชื•ืช ืฉื•ื ื•ืช. ื™ืฉ ืื•ืคืจื˜ื•ืจื™ื ืฉืœื™ืฉื™ื™ื ื‘ื“ื•ื’ืžื”, ืจืขื ืŸ ืืช ื”ื–ื™ื›ืจื•ืŸ ืื ืฉื›ื—ืช. ืฉื™ืžื• ืœื‘ ืœืื•ืคืŸ ืฉื‘ื• ื”ืžืืžืจ ืœื“ื•ื’ืžื” ืžื™ื™ืฉื ื”ื–ืจืงืช ืฉืขื•ืขื™ืช ื‘ืืžืฆืขื•ืช @Autowired
@RestController
public class ClientController {

   private final ClientService clientService;

   @Autowired
   public ClientController(ClientService clientService) {
       this.clientService = clientService;
   }
}
ืขืœื™ืš ืœื”ื™ื•ืช ืžื•ื“ืข ืœื›ืš ืฉื”ื—ืœ ืž-Spring 4.3, ื ื™ืชืŸ ืœื”ืฉืžื™ื˜ ืืช ื”ื”ืขืจื” @Autowired ืื ืœืžื—ืœืงื” ื™ืฉ ืจืง ื‘ื ืื™ ืื—ื“. ื”ืžืกื’ืจืช ืขืฆืžื” ืชื‘ื™ืŸ ืฉืฆืจื™ืš ืœื™ื™ืฉื ืฉืขื•ืขื™ืช ื‘ืงื•ื ืกื˜ืจื•ืงื˜ื•ืจ. ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืขื•ื“ ื‘ืžืงื•ืจ ื–ื” . ื•ืื ืืชื” ื–ื”ื™ืจ, ืื– ืฆืจื™ื›ื” ืœื”ื™ื•ืช ืœืš ืฉืืœื” ืœื’ื‘ื™ ื”ืžื‘ื ื” ืฉืœ ื—ื‘ื™ืœืช ื”ืฉื™ืจื•ืช , ื›ืœื•ืžืจ: ืœืžื” ื™ืฉ ืžืžืฉืง ClientService ื•- Public class ClientServiceImpl - ื–ื” ื ื•ื”ื’ ื ื›ื•ืŸ, ืžืื•ื—ืจ ื™ื•ืชืจ, ื ื“ื‘ืจ ืขืœ ืœืžื” ื–ื” ื ื—ื•ืฅ ื•ืื ื—ื ื• ื™ืฉืชืžืฉ ื‘ื•. ื–ื” ื”ื›ืœ ืขื ื”ืžืืžืจื™ื. ืœืคื ื™ ื”ืงืจื™ืื”, ื‘ื•ืื• ื ื›ืชื•ื‘. ื›ืžื• ืฉืื•ืžืจื™ื: "ืœื ื™ื•ื ื‘ืœื™ ืงื•ื“!" ื›ื ืงื•ื“ืช ื”ืชื—ืœื”, ื‘ื•ืื• ื ื™ืฆื•ืจ ื‘ืงืฉืช GET ืคืฉื•ื˜ื”. ื‘ืคืขื ื”ืื—ืจื•ื ื” ืฉื›ืชื‘ื ื• ืืคืœื™ืงืฆื™ื” ืœืกืคืงื•ืœืฆื™ื•ืช ื™ืจืงื•ืช, git clone https://FromJava@bitbucket.org/FromJava/speculation.git git clone git@bitbucket.org:FromJava/speculation.git ืคืชื—ื• ืืช ื”ืืคืœื™ืงืฆื™ื”, ื•ื‘ื—ื‘ื™ืœื” ru. java. rush ื ื™ืฆื•ืจ ื—ื‘ื™ืœืช ื‘ืงืจื™ื (ื‘ืงืจื™ื ืžืชื‘ื ื™ืช MVC ื™ืžื•ืงืžื• ื›ืืŸ). ืฆื•ืจ ProductController ื‘ื›ื™ืชื” ืฆื™ื‘ื•ืจื™ืช
@RestController
@RequestMapping("/speculation")
public class ProductController {

}
ื”ื”ืขืจื” @RestController ืžืฆื™ื™ื ืช ืœ-Spring ืฉื–ื”ื• ื‘ืงืจ ืžื ื•ื—ื”. @RequestMapping - ื›ืœ ืฉื™ื˜ื•ืช ื”ื‘ืงืจ ื™ืงื‘ืœื• ื‘ืงืฉื•ืช ืขื URI ืฉื™ืชื—ื™ืœ ื‘ืžื—ืจื•ื–ืช ืฉืฆื•ื™ื ื” ื‘ืกื•ื’ืจื™ื™ื ืฉืœ ื”ื”ืขืจื•ืช ("/ืกืคืงื•ืœืฆื™ื”"). ืื ื• ื›ื•ืชื‘ื™ื ืืช ื”ืฉื™ื˜ื” ื”ื‘ืื” ื‘ื›ื™ืชื”
@GetMapping("/simple")
public String simple(){
    return "ะ›ะตะณะบะธะน GET requestะธะบ";
}
ืื ื• ืžืฉื™ืงื™ื ืืช ื”ืคืจื•ื™ืงื˜, ื”ืงืœื™ื“ื• ื‘ืฉื•ืจืช ื”ื“ืคื“ืคืŸ: http://localhost:8080/speculation/simple ื ืงื‘ืœ ืืช ื”ืชืฉื•ื‘ื”: ื‘ืงืฉืช GET ืงืœื” ืžืกืคืจ ื”ืกื‘ืจื™ื: 1. ื™ืฆืจื ื• ืžื—ืœืงื” ืฉืกื™ืžื ื” ืืช @RestController ื›ื‘ืงืจ, ืฆื™ื™ื ื” ืืช ื ืชื™ื‘ ืืœื™ื• @RequestMapping ("/ ืกืคืงื•ืœืฆื™ื”") โ€“ ื”ืขืจื” ื–ื• ื”ื™ื ืื•ืคืฆื™ื•ื ืœื™ืช; ื‘ืœืขื“ื™ื”, ื”ื ืชื™ื‘ ื™ืชื—ื™ืœ ื‘-"/". 2. ื™ืฆืจื ื• ืฉื™ื˜ื” ืฉื›ืืฉืจ ื”ื™ื ืžื‘ื•ืฆืขืช, ืžื—ื–ื™ืจื” ืžื—ืจื•ื–ืช (Light GET request), ืกื™ืžื ื• ืื•ืชื” ื‘ื‘ื™ืื•ืจ @GetMapping (ืฉืฉื™ื˜ื” ื–ื• ืžื™ื•ืขื“ืช ื‘ืžื™ื•ื—ื“ ืœื‘ืงืฉื•ืช GET) ื•ืฆื™ื™ื ื• ืืช ื”ื ืชื™ื‘ ืœืžืชื•ื“ื” ("/simple") 3. ื”ืฉืงื ื• ืืช ื”ืคืจื•ื™ื™ืงื˜ (ืฉืจืช) ื‘ื™ืฆื™ืื” 8080, ื•ื”ื’ืฉื ื• ื‘ืงืฉืช GET ืœื›ืชื•ื‘ืช: server/controller/method (http://localhost:8080/speculation/simple) 4. The public String simple(){ return ืฉื™ื˜ืช "Easy GET requester" ืขื‘ื“ื” ืขื‘ื•ืจ ื‘ืงืฉื” ื–ื•; } 5. ืชื•ืฆืืช ื”ืฉื™ื˜ื” ื”ื•ื—ื–ืจื” ืœื“ืคื“ืคืŸ ื‘ืฆื•ืจื” ืฉืœ ื”ืžื—ืจื•ื–ืช "Easy GET request". ื•ื‘ื›ืŸ, ื–ื• ื”ืชื—ืœื”! ื”ื›ืชื‘ื•ืช ื”ืžืจืชืงื•ืช ื‘ื™ื•ืชืจ ืžื—ื›ื•ืช ืœื›ื. ืฉืœื™ื˜ื” ื‘ื—ื•ืžืจ ื”ืžื•ืฆืข ืœืขื™ืœ ื™ื™ืงื— ื™ื•ืชืจ ืžื™ื•ื ืื—ื“, ืื™ืŸ ืฆื•ืจืš ืœืžื”ืจ ื›ืืŸ, ื”ื ื•ืฉื ื”ื–ื” ื—ืฉื•ื‘ ืžืื•ื“ ื•ืฆืจื™ืš ืœื”ื‘ื™ืŸ ืื•ืชื•, "ืœืื›ื•ืœ ืืช ื”ืคื™ืœ ื‘ื—ืœืงื™ื". ืœื”ื“ืจื›ื” (ืœืื—ืจ ืฉืœื™ื˜ื” ื‘ื—ื•ืžืจ): ื”ืฉืœื ืืช ื‘ืงืจ ื™ื™ืฉื•ื ื”ืกืคืงื•ืœืฆื™ื•ืช . ืฆื•ืจ ืฉื™ื˜ื•ืช: 1) ื—ืคืฉ ืžื•ืฆืจ ืœืคื™ ืžื–ื”ื” ื”ืฉืชืžืฉ ื‘ืฉื™ื˜ืช productService.findById(); ืคืœื˜ ืœื“ื•ื’ืžื”
{
        "id": 1,
        "name": "ะšะฐั€ั‚ะพั„ะตะปัŒ",
        "purchasePrice": 20,
        "packaging": null,
        "salePrice": null
 }
ืœืื—ืจ ื”ื˜ืžืขืช ืฉื™ื˜ื•ืช ื”ื‘ืงืจ ื”ื ื•ืชืจื•ืช, ื—ืฉื‘ื•: "ืžื“ื•ืข ืฉื ื™ ื”ืฉื“ื•ืช ื”ืื—ืจื•ื ื™ื ื‘ื˜ืœื™ื? ืžื” ืฆืจื™ืš ืœืขืฉื•ืช ื›ื“ื™ ืฉื™ื”ื™ื• ืฉื ื›ืžื” ืขืจื›ื™ื?" 2) ื”ืฆื’ ืืช ื›ืœ ื”ืžื•ืฆืจื™ื ื‘ื—ื–ื™ืช ื”ื—ื ื•ืช: ื›ื“ื™ ืœื—ืคืฉ ืืช ื›ืœ ื”ืžื•ืฆืจื™ื, ื”ืฉืชืžืฉ ื‘ืฉื™ื˜ืช productService.findAll(); ื›ื“ื™ ืœืžืœื ืืช ืฉื“ื•ืช ื”ืืจื™ื–ื” ื•ื”ืกื™ืžื•ืŸ, ื”ืฉืชืžืฉ ื‘- productService.pack(); productService.makeMoney(); ื”ืคืœื˜ ืฆืจื™ืš ืœื”ื›ื™ืœ ืžืขืจืš JSON ื”ืžืคืจื˜ ืžื•ืฆืจื™ื, ืœื“ื•ื’ืžื”:
[
    {
        "id": 1,
        "name": "ะšะฐั€ั‚ะพั„ะตะปัŒ",
        "purchasePrice": 20,
        "packaging": "ะฃะฟะฐะบะพะฒะฐะฝะพ ะฒ ะปัƒั‡ัˆะตะผ ะฒะธะดะต",
        "salePrice": 100
    },
    {
        "id": 2,
        "name": "ะœะพั€ะบะพะฒัŒ",
        "purchasePrice": 14,
        "packaging": "ะฃะฟะฐะบะพะฒะฐะฝะพ ะฒ ะปัƒั‡ัˆะตะผ ะฒะธะดะต",
        "salePrice": 70
    }
]
3) ื”ื•ืกืคืช ืžื•ืฆืจ ื—ื“ืฉ ืœืžืกื“ ื”ื ืชื•ื ื™ื (ื”ื•ืกืคืช ืžื•ืฆืจ: ื›ืจื•ื‘ ื•ืžื—ื™ืจ ืจื›ื™ืฉื” ืกื™ื˜ื•ื ืื™) ื”ืฉืชืžืฉ ื‘: productService.save(); ื”ืฉื™ื˜ื” ืฆืจื™ื›ื” ืœื”ื—ื–ื™ืจ ืืช ืžืฆื‘ ื”-Http ื”ืžืชืื™ื. 4) ืžื—ื™ืงืช ืžื•ืฆืจ ืœืคื™ id ื›ื“ื™ ืœืขืฉื•ืช ื–ืืช, ืชื—ื™ืœื” ื”ื˜ืžื™ืข ื‘- ProductService ืฉื™ื˜ื” ื”ืžื›ื™ืœื” productRepository.deleteById(); ื•ืœืื—ืจ ืžื›ืŸ, ื”ืฉืชืžืฉ ื‘ื• ื‘ื‘ืงืจ. ืฉื™ื˜ืช ื”ื‘ืงืจ ื—ื™ื™ื‘ืช ืœื”ื—ื–ื™ืจ ืืช ืžืฆื‘ ื”-Http ื”ืžืชืื™ื. 5) ืฉื™ื ื•ื™ื™ื ื‘ืžื•ืฆืจ ืœืคื™ id (ืฉื™ื ื•ื™ ื‘ืžื—ื™ืจ ื”ืกื™ื˜ื•ื ืื™ ืฉืœ ื”ืžื•ืฆืจ ื•ืฉื ื”ืžื•ืฆืจ) ืคืขื•ืœื” ื–ื• ืชื”ื™ื” ืžืกื•ื‘ื›ืช ื™ื•ืชืจ ืžื”ืงื•ื“ืžื•ืช. ืจืืฉื™ืช ืขืœื™ื ื• ืœืžืฆื•ื ืืช ื”ืžื•ืฆืจ ืฉื‘ืจืฆื•ื ื ื• ืœืฉื ื•ืช ืœืคื™ id ื”ืฉืชืžืฉ ื‘-productService.findById(); ืœืื—ืจ ืžื›ืŸ, ื‘ืžื•ืฆืจ ืฉื ืžืฆื (object), ื”ื—ืœืฃ ืืช ื”ืขืจืš ืฉืœ ื”ืฉื“ื•ืช ื‘ืขืจืš ืฉืœ ื”ืฉื“ื•ืช ืฉืœ ื”ืื•ื‘ื™ื™ืงื˜ ืฉื”ืชืงื‘ืœ ื‘ื’ื•ืฃ ื”-Put request (json_object). ื ื™ืชืŸ ืœืขืฉื•ืช ื–ืืช ื‘ืฆื•ืจื” ื›ื–ื•:
ะฝะฐะนะดะตะฝะฝั‹ะน_ั‚ะพะฒะฐั€ = productService.findById(id);
ะฝะฐะนะดะตะฝะฝั‹ะน_ั‚ะพะฒะฐั€.setName(an object_json.getName);
ะฝะฐะนะดะตะฝะฝั‹ะน_ั‚ะพะฒะฐั€.setPurchasePrice(an object_json.getPurchasePrice);
ืœืื—ืจ ืžื›ืŸ, ื™ืฉ ืœืฉืžื•ืจ ืืช ื”ืžื•ืฆืจ ืฉื”ืฉืชื ื” productService.save(found_product); ื”ืฉื™ื˜ื” ืฆืจื™ื›ื” ืœื”ื—ื–ื™ืจ ืืช ืžืฆื‘ ื”-Http ื”ืžืชืื™ื. ืื ื™ืฉ ืœืš ื‘ืขื™ื•ืช ื‘ืฉื™ื˜ื” ื–ื•, ืืชื” ื™ื›ื•ืœ ืœื—ืคืฉ ื‘ื’ื•ื’ืœ "ืฉื™ื ื‘ืงืฉื” java", ืืฃ ืื—ื“ ืœื ื‘ื™ื˜ืœ ืืช ื”ืื™ื ื˜ืจื ื˜ ืขื“ื™ื™ืŸ) ื”ืขื‘ื•ื“ื” ืขื ื‘ืงืจื™ื ืœื ืžืกืชื™ื™ืžืช ืฉื, ื™ืฉ ืขื“ื™ื™ืŸ ื”ืจื‘ื” ื ื•ืฉืื™ื ืœืคื ื™...
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION