Browse Source

Calling multiple microservices

Daniel Garcia Costa 2 năm trước cách đây
mục cha
commit
669f7a5c02

+ 9 - 1
DBCDS_S10_1_Api/src/main/java/es/uv/garcosda/api/controllers/VideosController.java

@@ -20,7 +20,9 @@ import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.client.ResourceAccessException;
 import org.springframework.web.client.RestTemplate;
 
+import es.uv.garcosda.shared.User;
 import es.uv.garcosda.shared.Video;
+import es.uv.garcosda.shared.VideoDTO;
 
 @RestController
 @RequestMapping("/api/v1/videos")
@@ -28,9 +30,13 @@ import es.uv.garcosda.shared.Video;
 public class VideosController {
 	
 	private RestTemplate template;
+	
 	@Value("${api.uri.videos}")
 	private String videosApi;
 	
+	@Value("${api.uri.users}")
+	private String usersApi;
+	
 	public VideosController() {
 		this.template = new RestTemplate();
 	}
@@ -65,7 +71,9 @@ public class VideosController {
 		try {
 			Video v = template.getForObject(videosApi+"/"+id, Video.class);
 			if(v.getId() != null) {
-				return new ResponseEntity<Video>(v, HttpStatus.OK);	
+				User u = template.getForObject(usersApi+"/"+v.getUserId(), User.class);
+				VideoDTO vo = new VideoDTO(v, u);
+				return new ResponseEntity<VideoDTO>(vo, HttpStatus.OK);	
 			}
 			return new ResponseEntity<String>("Video not found", HttpStatus.NOT_FOUND);	
 		}

+ 12 - 5
DBCDS_S10_1_Api/src/main/resources/META-INF/additional-spring-configuration-metadata.json

@@ -1,5 +1,12 @@
-{"properties": [{
-  "name": "api.uri.videos",
-  "type": "java.lang.String",
-  "description": "A description for 'api.uri.videos'"
-}]}
+{"properties": [
+  {
+    "name": "api.uri.videos",
+    "type": "java.lang.String",
+    "description": "A description for 'api.uri.videos'"
+  },
+  {
+    "name": "api.uri.users",
+    "type": "java.lang.String",
+    "description": "A description for 'api.uri.users'"
+  }
+]}

+ 1 - 0
DBCDS_S10_1_Api/src/main/resources/application.properties

@@ -1,3 +1,4 @@
 server.port=8080
 
 api.uri.videos=http://127.0.0.1:8081/api/v1/videos
+api.uri.users=http://127.0.0.1:8081/api/v1/users

+ 31 - 0
DBCDS_S10_1_Shared/src/main/java/es/uv/garcosda/shared/VideoDTO.java

@@ -0,0 +1,31 @@
+package es.uv.garcosda.shared;
+
+import java.io.Serializable;
+
+public class VideoDTO implements Serializable{
+
+	private static final long serialVersionUID = 1L;
+	private Video video;
+	private User user;
+	
+	public VideoDTO() {}
+	
+	public VideoDTO(Video video, User user) {
+		this.video = video;
+		this.user = user;
+	}
+	
+	public Video getVideo() {
+		return video;
+	}
+	public void setVideo(Video video) {
+		this.video = video;
+	}
+	public User getUser() {
+		return user;
+	}
+	public void setUser(User user) {
+		this.user = user;
+	}
+
+}