Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DLB-27] 공공데이터포털 API Response 정리하기 #75

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 34 additions & 4 deletions server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
<properties>
<java.version>1.8</java.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
<lombok.version>1.18.12</lombok.version>
<org.mapstruct.version>1.3.1.Final</org.mapstruct.version>
</properties>

<dependencies>
Expand Down Expand Up @@ -48,6 +50,13 @@
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Swagger UI -->
<dependency>
Expand Down Expand Up @@ -83,6 +92,20 @@
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>


<!-- Http Client -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>

<!-- MapStruct -->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
</dependencies>

<build>
Expand All @@ -95,17 +118,24 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<source>${java.version}</source>
<target>${java.version}</target>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.3.0.Beta2</version>
<version>${org.mapstruct.version}</version>
</path>
</annotationProcessorPaths>
<compilerArgs>
<arg>-Amapstruct.defaultComponentModel=spring</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.dlog.diary.common.domain.food;

import lombok.Data;

@Data
public class FoodNutrition {
private String foodName;
private String servingSize;
private String calorie; // NUTR_CONT1
private String carbs; // NUTR_CONT2
private String protein; // NUTR_CONT3
private String fat; // NUTR_CONT4
private String sugar; // NUTR_CONT5
private String sodium; // NUTR_CONT6
private String cholesterol; // NUTR_CONT7
private String fattyAcids; // NUTR_CONT8
private String transFattyAcids; // NUTR_CONT9
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.dlog.diary.common.domain.food;

import java.util.List;

import lombok.Data;
import lombok.ToString;

@Data
@ToString
public class FoodNutritions {
private List<FoodNutrition> foodNutritions;
private int totalCount;
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import org.springframework.context.annotation.Configuration;

@Configuration
@MapperScan(value = { "com.dlog.diary.*" })
@MapperScan(value = { "com.dlog.diary.exercise", "com.dlog.diary.meal", "com.dlog.diary.user", "com.dlog.diary.sample"})
public class MyBatisConfig {

@Autowired
Expand Down
112 changes: 0 additions & 112 deletions server/src/main/java/com/dlog/diary/food/FoodInfoApiController.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.dlog.diary.food;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.dlog.diary.common.domain.food.FoodNutritions;
import com.dlog.diary.food.dto.FoodNutritionsResponse;
import com.dlog.diary.food.service.FoodNutritionMapping;
import com.dlog.diary.food.service.FoodNutritionService;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

@RestController
@Api("식품 영양 조회 API")
public class FoodNutritionController {
private FoodNutritionService foodNutritionService;
private FoodNutritionMapping foodNutritionMapping;

public FoodNutritionController(FoodNutritionService foodNutritionService, FoodNutritionMapping foodNutritionMapping) {
this.foodNutritionService = foodNutritionService;
this.foodNutritionMapping = foodNutritionMapping;
}

@GetMapping("/foods")
@ApiOperation(value = "식품 영양성분 조회", notes = "특정 식품의 영양 성분을 공공데이터포털 API를 활용하여 조회.")
public FoodNutritionsResponse getFoodNutrition(
@ApiParam(name = "foodName", value = "식품 이름", required = true, example = "바나나칩") @RequestParam String foodName,
@ApiParam(name = "pageNo", value = "페이지 번호", required = true, example = "1") @RequestParam String pageNo,
@ApiParam(name = "numOfRows", value = "검색 건수", required = true, example = "10") @RequestParam String numOfRows) {

FoodNutritions foodNutritions = foodNutritionService.getFoodNutritions(pageNo, numOfRows, foodName);
FoodNutritionsResponse response = foodNutritionMapping.foodNutritionsToResponse(foodNutritions);
return response;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.dlog.diary.food.dto;

import javax.xml.bind.annotation.XmlRootElement;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@XmlRootElement(name = "cmmMsgHeader")
public class ErrorFoodNutritionServiceHeader {
private String errMsg;
private String returnAuthMsg;
private String returnReasonCode;
private String returnCode;

@Override
public String toString() {
return "ErrorFoodNutritionServiceHeader [" + (errMsg != null ? "errMsg=" + errMsg + ", " : "")
+ (returnAuthMsg != null ? "returnAuthMsg=" + returnAuthMsg + ", " : "")
+ (returnReasonCode != null ? "returnReasonCode=" + returnReasonCode + ", " : "") + (returnCode != null ? "returnCode=" + returnCode : "")
+ "]";
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.dlog.diary.food.dto;

import java.io.Serializable;

import javax.xml.bind.annotation.XmlRootElement;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@ToString
@XmlRootElement(name = "OpenAPI_ServiceResponse")
public class ErrorFoodNutritionServiceResponse implements Serializable {
private static final long serialVersionUID = 1L;
private ErrorFoodNutritionServiceHeader cmmMsgHeader;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.dlog.diary.food.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
@ApiModel
public class FoodNutritionResponse {
@ApiModelProperty(required = true, value = "식품이름", example = "바나나칩")
private String name;
@ApiModelProperty(required = true, value = "열량(Kcal)", example = "49.5")
private String calorie;
@ApiModelProperty(required = true, value = "탄수화물(g)", example = "5.4")
private String carbs;
@ApiModelProperty(required = true, value = "단백질(g)", example = "0.3")
private String protein;
@ApiModelProperty(required = true, value = "지방(g)", example = "3")
private String fat;
@ApiModelProperty(required = true, value = "1회제공량(g)", example = "30")
private String servingSize;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.dlog.diary.food.dto;

import java.io.Serializable;
import java.util.List;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@ToString
@XmlRootElement(name = "body")
public class FoodNutritionServiceBody implements Serializable {
private static final long serialVersionUID = 1L;
private String numOfRows;
private String pageNo;
private String totalCount;
private List<FoodNutritionServiceBodyItem> items;

@XmlElementWrapper(name = "items")
@XmlElement(name = "item")
public List<FoodNutritionServiceBodyItem> getItems() {
return items;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.dlog.diary.food.dto;

import java.io.Serializable;

import javax.xml.bind.annotation.XmlRootElement;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@ToString
@XmlRootElement(name = "item")
public class FoodNutritionServiceBodyItem implements Serializable {
private static final long serialVersionUID = 1L;
private String DESC_KOR;
private String SERVING_WT;
private String NUTR_CONT1;
private String NUTR_CONT2;
private String NUTR_CONT3;
private String NUTR_CONT4;
private String NUTR_CONT5;
private String NUTR_CONT6;
private String NUTR_CONT7;
private String NUTR_CONT8;
private String NUTR_CONT9;
private String BGN_YEAR;
private String ANIMAL_PLANT;
}
Loading