Spring Boot Hateoas nedir?

Spring Boot projelerimizde kullandığımız Rest işlemlerinde kullanımı ve dökümante edilmesini sağlayan yapıdır.

Bir rest servisinin response üzerinden tüm içerik bilgilerini görebildiğimiz başka bir kaynağa ya da dökümana gerek kalmadan kullanabilmeye olanak sağlayan bir araçtır. Örnek verecek olursam bir kişinin kaydını getirmek için rest üzerinden gelen cevabın içerisinde o restin diğer yapabileceği tüm yeteneklerinde görülebileceği bir yapı sağlamaktadır. Projemizde başka Rest işlemleri eklediysek silme, güncelleme gibi işlemleri yapabilmek için hangi rest yolunun kullanılması gerektiği gibi bilgileri görüntüler.

Örnek:

@RequestMapping(method=RequestMethod.GET,value="/owner{id}",produces="application/json")
	public ResponseEntity<?> getOwnerAsHateoasResource(@PathVariable("id") Long id)
	{
		try {
		Owner owner =petClinicService.findOwner(id);
		Link self=ControllerLinkBuilder.linkTo(PetClinicRestContoller.class).slash("/owner/"+id).withSelfRel();		
		Link create=ControllerLinkBuilder.linkTo(PetClinicRestContoller.class).slash("/owner").withRel("create");
		Link update=ControllerLinkBuilder.linkTo(PetClinicRestContoller.class).slash("/owner/"+id).withRel("update");
		Link delete=ControllerLinkBuilder.linkTo(PetClinicRestContoller.class).slash("/owner"+id).withRel("delete");
		Resource<Owner> resource =new Resource<Owner>(owner,self,create,update,delete);
				return ResponseEntity.ok(resource);
		}
		catch(OwnerNotFoundException ex) {
			return ResponseEntity.notFound().build();
			}
		}

with_rel: Metod ile ilgili referans tanımlaması yapılır.

withType: Hangi Rest tipinde olduğunun tanımı yapılmaktadır.İstek yapan kişiye bilgi vermek için kullanılır.

Last updated

Was this helpful?