영카트 카테고리 조회하는 api를 만드려고 하는데요
본문
고수님들 카테고리를 가져오는 get api를 만들려고 하는데
아래와 같이 코딩을 했는데,
cate_item_get 함수를 안타는것 같아서 함수를 주석처리하고 호출해봤는데도
처음의 echo "dddd"; 와 마지막 echo "<br/>end";는 출력이 되는데
중간에는 아에 안나오는데 이유가 뭘까요?
php 초보... 도와주세용
getRoute()->get('/', 'cate_item_get');
##getRoute()->post('/cate_item_get', 'cate_item_get');
echo "dddd";
// cate_item_get
##function cate_item_get() {
echo "ddddq2";
// PROCESS DATA ARRAY
$result_data = array(); # 결과 데이터
/**
* 기본정보
*/
$result = sql_fetch(" SELECT ca_id, ca_name FROM `g5_shop_category` ORDER BY ca_order, ca_id ");
// RESULT DATA RETURN
$result_data["result_code"] = '1';
$result_data["result_message"] = 'success';
$result_data["data"] = array();
echo "1";
echo $result_data;
// 가져온 데이터를 API 응답 배열에 추가
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$data = array();
foreach ($columns as $column) {
$data[$column] = $row[$column];
echo $data[$column];
}
array_push($result_data["data"], $data);
}
} else {
// ERROR
$result_data['result_code'] = '9999';
$result_data['result_message'] = 'No data found in the database!';
echo "9999";
}
// API 응답 출력
header('Content-Type:application/json; charset=utf-8');
echo json_encode($result_data);
##}
echo "<br/>end";
답변 4
다음을 참고 하셔서 원하시는 형식으로 구현하시면 되지 않을까 생각합니다.
<?php
function cate_item_get() {
$result_data = array();
$result = sql_fetch("SELECT ca_id, ca_name FROM `g5_shop_category` ORDER BY ca_order, ca_id ");
$result_data["result_code"] = '1';
$result_data["result_message"] = 'success';
$result_data["data"] = array();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$data = array();
// $columns 변수가 없으므로 해당 부분 수정
$data["ca_id"] = $row["ca_id"];
$data["ca_name"] = $row["ca_name"];
array_push($result_data["data"], $data);
}
} else {
$result_data['result_code'] = '9999';
$result_data['result_message'] = 'No data found in the database!';
}
header('Content-Type:application/json; charset=utf-8');
echo json_encode($result_data);
}
$method = $_SERVER['REQUEST_METHOD'];
$path = $_SERVER['REQUEST_URI'];
if ($method == 'GET' && $path == '/') {
cate_item_get();
} else {
http_response_code(404);
echo json_encode(array("result_code" => 404, "result_message" => "Not Found"));
}
!-->
JSON 응답과 한글 표현:
JSON 응답에서 한글이 유니코드로 표현되는 것은 PHP의 json_encode() 함수가 Unicode 이스케이프를 적용하기 때문입니다.
json_encode() 함수에 JSON_UNESCAPED_UNICODE 플래그를 추가하여 유니코드 이스케이프를 제거할 수 있습니다.
다음을 참고해 보세요
<?php
function cate_item_get() {
$result_data = array();
$result = sql_fetch("SELECT ca_id, ca_name FROM `g5_shop_category` ORDER BY ca_order, ca_id ");
$result_data["result_code"] = '1';
$result_data["result_message"] = 'success';
$result_data["data"] = array();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$data = array();
// $columns 변수가 없으므로 해당 부분 수정
$data["ca_id"] = $row["ca_id"];
$data["ca_name"] = $row["ca_name"];
array_push($result_data["data"], $data);
}
} else {
$result_data['result_code'] = '9999';
$result_data['result_message'] = 'No data found in the database!';
}
header('Content-Type: application/json; charset=utf-8');
echo json_encode($result_data, JSON_UNESCAPED_UNICODE); // 유니코드 이스케이프를 제거하여 한글을 그대로 출력
}
$method = $_SERVER['REQUEST_METHOD'];
$path = $_SERVER['REQUEST_URI'];
if ($method == 'GET' && $path == '/') {
cate_item_get();
} else {
http_response_code(404);
echo json_encode(array("result_code" => 404, "result_message" => "Not Found"));
}
?>
감사합니다! 해결됐어요 ^^