Tokie skaitytojai kaip jūs padeda palaikyti MUO. Kai perkate naudodami nuorodas mūsų svetainėje, galime uždirbti filialų komisinius. Skaityti daugiau.

Santrumpa REST reiškia reprezentacinį būsenos perdavimą, o API reiškia taikomųjų programų programavimo sąsają. Kartu jie nurodo REST API. REST API yra paslauga, kuri perduoda užklausas ir atsakymus tarp dviejų programinės įrangos sistemų REST architektūroje.

REST architektūra kuria žiniatinklio paslaugas, kurios pasiekiamos per URL, naudojant vieną iš keturių užklausų veiksmažodžių: POST, GET, PUT ir DELETE. Taigi, galima sakyti, REST API yra programinė įranga, leidžianti kurti, skaityti, atnaujinti ir ištrinti išteklius naudojant URL.

Galite sužinoti, kaip sukurti REST API naudodami „Spring Boot“.

Inicijuoja „Spring Boot“ programą

Pirmas dalykas, kurį turėtumėte padaryti, yra susipažinkite su pavasario pagrindais ir nustatyti „Spring Boot“ programą. Vis dėlto turėsite pakeisti priklausomybes. Be priklausomybės nuo žiniatinklio, turėsite gauti „Spring Data Java Persistent API“ (JPA) priklausomybę ir duomenų bazės, kurią ketinate naudoti, tvarkyklę (ši programa naudos MySQL).

instagram viewer

Šiai REST API jums reikės valdiklio, modelio ir saugyklos. Taigi, REST API failų struktūra bus tokia:

Modelio kūrimas

Pirmoji klasė, kurią turėsite sukurti, yra kliento modelis, kuriame saugoma duomenų logika.

paketą com.onlineshopaholics.api.model;

importuoti Džakarta.atkaklumas. Stulpelis;
importuoti Džakarta.atkaklumas. Subjektas;
importuoti Džakarta.atkaklumas. GeneratedValue;
importuoti Džakarta.atkaklumas. kartos tipas;
importuoti Džakarta.atkaklumas. Id;
importuoti Džakarta.atkaklumas. Stalas;

@Lentelė(vardas ="klientas")
@Subjektas
viešasklasėKlientas{
@Id
@GeneratedValue(strategija = GenerationType. AUTOMATINIS)
privatus Sveikasis skaičius id;

@Stulpelis(vardas ="Kliento vardas")
privatus Stygos pavadinimas;

privatus Styginių el.

viešas Sveikasis skaičius getId(){
grąžinti id;
}

viešastuštumasetId(Sveikasis skaičius ID){
tai.id = id;
}

viešas Styga getName(){
grąžinti vardas;
}

viešastuštumasetName(Eilutės pavadinimas){
tai.name = vardas;
}

viešas Styga gautiEmail(){
grąžinti paštas;
}

viešastuštumasetEmail(Eilinio pašto eilutė){
tai.email = el. paštas;
}
}

Iš aukščiau pateiktos klientų klasės pamatysite, kad kiekvienas klientas turės ID, vardą ir el. pašto adresą. Taip pat pastebėsite keletą komentarų, skirtų skirtingiems tikslams.

  • @Entity: deklaruoja klientų klasę kaip JPA subjektą. Tai reiškia, kad JPA naudos klasės laukus, kad sukurtų stulpelius reliacinėje duomenų bazėje.
  • @Table: nurodo lentelės, kuri bus susieta su kliento modelio klase, pavadinimą.
  • @Id: nurodo ypatybę, kuri unikaliai identifikuos objektą duomenų bazėje.
  • @GeneratedValue ir @GenerationType: jie veikia kartu, kad nurodytų automatinio generavimo strategiją laukui, su kuriuo jis susietas. Taigi ID laukas automatiškai generuos unikalią vertę kiekvieną kartą, kai sukuriate naują klientą.
  • @Column: žymi ypatybę, susiejančią su duomenų bazės stulpeliu. Taigi, pavadinimo ypatybė bus susieta su kliento pavadinimo stulpeliu duomenų bazėje.

Saugyklos kūrimas

Ši saugykla leis jums bendrauti su duomenų bazėje esančiais klientų duomenimis.

paketą com.onlineshopaholics.api.repository;

importuoti org.springframework.data.repository. CrudRepository;
importuoti com.onlineshopaholics.api.model. Klientas;

viešassąsajaKlientų saugyklatęsiasiCrudRepository<Klientas, Sveikasis skaičius>{}

Klientų saugykla plečiasi Pavasario „CrudRepositoy“. sąsaja, perduodama jai Kliento modelio klasę kartu su unikalaus objekto identifikatoriaus tipu, sveikasis skaičius.

„CrudRepository“ sąsaja suteikia prieigą prie daugiau nei 10 operacijų, įskaitant bendruosius CRUD metodus, kurių jums prireiks REST API. Taigi, kadangi CrudRepository jau apibrėžia jums reikalingus metodus, nereikia jų aiškiai deklaruoti CustomerRepository sąsajoje.

Valdiklio kūrimas

Valdiklis leidžia atnaujinti duomenis duomenų bazėje naudojant modelį ir saugyklą.

paketą com.onlineshopaholics.api.controller;

importuoti java.util. Neprivaloma;

importuoti org.springframework.beans.factory.annotation. Automatinis laidas;
importuoti org.springframework.web.bind.annotation. DeleteMapping;
importuoti org.springframework.web.bind.annotation. GetMapping;
importuoti org.springframework.web.bind.annotation. PathVariable;
importuoti org.springframework.web.bind.annotation. PostMapping;
importuoti org.springframework.web.bind.annotation. PutMapping;
importuoti org.springframework.web.bind.annotation. RequestBody;
importuoti org.springframework.web.bind.annotation. RequestMapping;
importuoti org.springframework.web.bind.annotation. RequestParam;
importuoti org.springframework.web.bind.annotation. ResponseBody;
importuoti org.springframework.web.bind.annotation. „RestController“;

importuoti com.onlineshopaholics.api.model. Klientas;
importuoti com.onlineshopaholics.api.repository. Klientų saugykla;

@RestController
@RequestMapping("/klientai")
viešasklasėCustomerController{
@Autowired
privatus CustomerRepository customerRepository;

// sukurti naują klientą
@PostMapping("/papildyti")
viešas Klientas pridėti naują klientą(@RequestBody Customer newCustomer){
Kliento vartotojas = naujas Klientas ();
user.setName (newCustomer.getName());
user.setEmail (newCustomer.getEmail());
customerRepository.save (vartotojas);
grąžinti Vartotojas;
}

// peržiūrėti visus klientus
@GetMapping("Peržiūrėti visus")
viešas@ResponseBodyPakartojamagetAllCustomers(){
grąžinti customerRepository.findAll();
}

// peržiūrėti konkretų klientą
@GetMapping("view/{id}")
viešas NeprivalomagetCustomer(@PathVariable Integer ID){
grąžinti customerRepository.findById (id);
}

// atnaujinti esamą klientą
@PutMapping("/edit/{id}")
viešas Styga atnaujinti( @RequestBody Customer updateCustomer, @PathVariable Integer ID){
grąžinti customerRepository.findById (id)
.map (klientas -> {
customer.setName (updateCustomer.getName());
customer.setEmail (updateCustomer.getEmail());
customerRepository.save (klientas);
grąžinti"Kliento informacija sėkmingai atnaujinta!";
}).orElseGet(() -> {
grąžinti"Šis klientas neegzistuoja";
});
}

// ištrinti klientą
@DeleteMapping(„Delete/{id}“)
viešas Styga Ištrinti(@PathVariable("id")sveikojo skaičiaus ID) {
customerRepository.deleteById (id);
grąžinti"Klientas sėkmingai ištrintas!";
}
}

Aukščiau pateiktas valdiklis aprūpina REST API CRUD operacijomis, naudodamas penkias CrudRepository sąsajos metodai (kiekvienas priskirtas konkrečiam metodui). Valdiklis taip pat naudoja keletą svarbių pavasario anotacijų, kurios leidžia atlikti savo funkcijas.

  • @RestController: ši anotacija skirta dviem tikslams. Tai žymi klasę, kurią reikia atrasti nuskaitant komponentus. Ji taip pat nurodo „Spring“ atsakymo tekste įrašyti visų šios klasės metodų grąžinimo vertę.
  • @RequestMapping: apibrėžia pradinį užklausos šabloną, kurį valdiklis apdoros. Taigi, šis valdiklis apdoros visas užklausas „/customers“.
  • @ResponseBody: leidžia metodui grąžinti visą objektą.
  • @RequestBody: leidžia konvertuoti užklausos turinį į objektą.
  • @RequestParam: leidžia atskirti vieną nuosavybę nuo objekto.
  • @PathVariable: leidžia susieti užklausos reikšmę su vietos rezervavimo ženklu. Jis susieja ištrynimo metodui suteiktą ID su esama duomenų bazėje esančia reikšme.
  • @PostMapping: leidžia kurti išteklius.
  • @GetMapping: leidžia skaityti išteklių duomenis.
  • @PutMapping: leidžia atnaujinti išteklius.
  • @DeleteMapping: leidžia ištrinti išteklius.

Duomenų bazės prijungimas prie programos

Norėdami prijungti duomenų bazę prie bet kurios pavasario programos, turėsite naudoti taikymas.ypatybės failą išteklių aplanke. Šis failas iš pradžių yra tuščias, todėl galite jį užpildyti atitinkamomis duomenų bazės, kurią ketinate naudoti, ypatybėmis. Ši programa naudos MySQL duomenų bazę, todėl faile application.properties bus šie duomenys:

spring.jpa.hibernate.ddl-auto=atnaujinti
spring.jpa.open-in-view=false
spring.datasource.url=jdbc: mysql://${MYSQL_HOST: localhost}:3306/onlineshopaholics
spring.datasource.username=root
spring.datasource.password=securepw
spring.datasource.driver-class-name=com.mysql.cj.jdbc. Vairuotojas

Aukščiau pateikti duomenys rodo, kad ši programa prisijungs prie MySQL duomenų bazės, vadinamos onlineshopaholics, su „root“ vartotojo vardu ir „securepw“ kaip slaptažodžiu. Kitas jūsų žingsnis yra sukurti duomenų bazę ir klientų lentelę MySQL.

Prašymų kūrimas

Yra daug įrankių, kuriuos galite naudoti norėdami išbandyti savo REST API. „Postman“ yra populiarus REST API testavimo įrankis, ir galite jį naudoti norėdami išbandyti paprastą sukurtą API. Sukūrę MySQL lentelę ir paleidę „Spring“ programą, galite paleisti „Postman“ ir eksperimentuoti su keturiais prašymo veiksmažodžiais.

POST užklausa

Ši užklausa leis jums sukurti naujų klientų naudojant REST API. Norėdami užbaigti šią užklausą, turėsite eiti į paskelbimo užklausos antraščių skyrių ir sukurti naują antraštę (turinio tipas). Turėtumėte nustatyti šios antraštės vertę į programą / JSON, nes sukursite naujų klientų naudodami JSON.

Užklausos turinyje turėsite pakeisti tipą į neapdorotą ir įterpti JSON. Tada turėsite įterpti įrašo URL:

Išsiuntus užklausą bus pateiktas toks atsakymas:

Matote, kad užklausa buvo sėkminga, o naujasis klientas taip pat turi ID.

GAUTI Prašymą

Dabar, kai turite klientą, galite jį peržiūrėti pateikę užklausą gauti, kuri grąžins visus klientus:

Arba kiekvienas klientas pagal ID:

PUT užklausa

Galite atnaujinti Janet naują pavardę ir el.

IŠTRINTI užklausą

Taip pat galite ištrinti Janet iš duomenų bazės.

Išbandykite savo pavasario REST API naudodami JUnit

Naudodami Spring Boot galite išbandyti bet kurią programą (įskaitant REST API) naudodami Spring bandomąjį failą. Programinės įrangos testavimas yra svarbus „Spring Boot“. Kiekviena inicijuota Spring programa naudoja JUnit testavimui ir leidžia siųsti užklausas į savo REST API.