api를 만들어봤는데 이걸 api라고 할 수 있을까요..? 채택완료
하틴
3년 전
조회 1,481
postman으로 아래와 같이 GET/POST/PUT/DELETE 테스트를 해서 정상적으로 작동을 하게끔 했습니다..
GET https://domain.com/api/member.php?id=dg01&password=1234
POST https://domain.com/api/member.php Body->form-data 로 값 전달
PUT https://domain.com/api/member.php Body->raw->JSON 로 값 전달
DELETE https://domain.com/api/member.php Body->raw->JSON 로 값 전달
</p>
<p>include $_SERVER['DOCUMENT_ROOT']."/lib_inc.php";</p>
<p> include "./jwt_inc.php";</p>
<p> header("Access-Control-Allow-Origin: *");</p>
<p> header("Content-Type: application/json; charset=UTF-8");</p>
<p> header("Access-Control-Allow-Methods: POST");</p>
<p> header("Access-Control-Max-Age: 3600");</p>
<p> header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");</p>
<p> </p>
<p> $jwt = new JWT();</p>
<p> </p>
<p> switch ($_SERVER['REQUEST_METHOD']) {</p>
<p> case 'GET':</p>
<p> if(isset($_GET['id']) && isset($_GET['password']) && isset($_GET['token'])){</p>
<p> ...................</p>
<p> </p>
<p> if($itemCount > 0){</p>
<p> if(password_verify($password, $row['mt_pwd'])) { </p>
<p> $token = $_GET['token'];</p>
<p> </p>
<p> // jwt에서 유저 정보 가져오기</p>
<p> $data = $jwt->dehashing($token);</p>
<p> if($data['type'] === "time"){</p>
<p> http_response_code(404);</p>
<p> echo json_encode("time error");</p>
<p> break;</p>
<p> }</p>
<p> if($data['type'] === "key"){</p>
<p> http_response_code(404);</p>
<p> echo json_encode("key error");</p>
<p> break;</p>
<p> }</p>
<p> </p>
<p> $parted = explode('.', base64_decode($token));</p>
<p> $payload = json_decode($parted[1], true);</p>
<p> </p>
<p> $mt_id = base64_decode($payload['id']);</p>
<p> $mt_pwd = base64_decode($payload['password']);</p>
<p> $mt_pwd_re = base64_decode($payload['password']);</p>
<p> </p>
<p> if($mt_id != $_GET['id']){</p>
<p> http_response_code(404);</p>
<p> echo json_encode("아이디가 다릅니다.");</p>
<p> break;</p>
<p> }</p>
<p> </p>
<p> .............</p>
<p> </p>
<p> http_response_code(200);</p>
<p> echo json_encode($emp_arr); </p>
<p> } else {</p>
<p> http_response_code(404);</p>
<p> echo json_encode("id not found.");</p>
<p> }</p>
<p> }else{</p>
<p> http_response_code(404);</p>
<p> echo json_encode("id not found.");</p>
<p> }</p>
<p> }else{</p>
<p> http_response_code(404);</p>
<p> echo json_encode("id not found.");</p>
<p> }</p>
<p> break;</p>
<p> case 'POST':</p>
<p> //raw 받을때 아래줄사용</p>
<p> //$jsonData = json_decode(file_get_contents("php://input"), true);</p>
<p> // print_r($jsonData);</p>
<p> // echo "////";</p>
<p> // print_r($jsonData['vact']["banks"][0]);</p>
<p> //break;</p>
<p> if(isset($_POST['mt_name']) && isset($_POST['mt_id']) && isset($_POST['mt_pwd']) && isset($_POST['mt_pwd_re']) && isset($_POST['mt_team'])){ </p>
<p> if($_POST['mt_pwd']!=$_POST['mt_pwd_re']) {</p>
<p> http_response_code(404);</p>
<p> echo json_encode("비밀번호가 다릅니다.");</p>
<p> break;</p>
<p> }</p>
<p> </p>
<p> </p>
<p> </p>
<p> if($row['id']) {</p>
<p> http_response_code(404);</p>
<p> echo json_encode("이미 존재하는 회원입니다.");</p>
<p> break;</p>
<p> }</p>
<p> </p>
<p> </p>
<p> ....................</p>
<p> http_response_code(200);</p>
<p> echo json_encode($emp_arr);</p>
<p> echo 'Employee created successfully.';</p>
<p> }else{</p>
<p> echo 'Employee could not be created.';</p>
<p> }</p>
<p> }else{</p>
<p> http_response_code(404);</p>
<p> echo json_encode("id not found.");</p>
<p> }</p>
<p> break;</p>
<p> case 'PUT': </p>
<p> $jsonData = json_decode(file_get_contents("php://input"), true);</p>
<p> //print_r($jsonData['member_info']);</p>
<p> $token = $jsonData['member_info']["mt_token"];</p>
<p> $data = $jwt->dehashing($token);</p>
<p> if($data['type'] === "time"){</p>
<p> http_response_code(404);</p>
<p> echo json_encode("time error");</p>
<p> break;</p>
<p> }</p>
<p> if($data['type'] === "key"){</p>
<p> http_response_code(404);</p>
<p> echo json_encode("key error");</p>
<p> break;</p>
<p> }</p>
<p> </p>
<p> $parted = explode('.', base64_decode($token));</p>
<p> $payload = json_decode($parted[1], true);</p>
<p> </p>
<p> $mt_id = base64_decode($payload['id']);</p>
<p> $mt_pwd = base64_decode($payload['password']);</p>
<p> $mt_pwd_re = base64_decode($payload['password']);</p>
<p> </p>
<p> if($mt_id != $jsonData['member_info']['mt_id']){</p>
<p> http_response_code(404);</p>
<p> echo json_encode("아이디가 다릅니다.");</p>
<p> break;</p>
<p> }</p>
<p> </p>
<p> if(isset($mt_id) && isset($mt_pwd) && isset($mt_pwd_re) && isset($jsonData['member_info']['mt_status'])){</p>
<p> if($jsonData['member_info']['mt_pwd']!=$jsonData['member_info']['mt_pwd_re']) {</p>
<p> http_response_code(404);</p>
<p> echo json_encode("비밀번호가 다릅니다.");</p>
<p> break;</p>
<p> }</p>
<p> </p>
<p> ...................</p>
<p> </p>
<p> if($row['cnt'] < 1) {</p>
<p> http_response_code(404);</p>
<p> echo json_encode("존재하지 않는 회원입니다.");</p>
<p> break;</p>
<p> }</p>
<p> </p>
<p> if(password_verify($password, $row['mt_pwd'])) {</p>
<p> ......................</p>
<p> );</p>
<p> http_response_code(200);</p>
<p> echo json_encode($emp_arr);</p>
<p> echo json_encode("Employee data updated.");</p>
<p> }else{</p>
<p> http_response_code(404);</p>
<p> echo json_encode("Data could not be updated!!");</p>
<p> }</p>
<p> }else{</p>
<p> echo json_encode("Data could not be updated@@");</p>
<p> }</p>
<p> }else{</p>
<p> http_response_code(404);</p>
<p> echo json_encode("Data could not be updated");</p>
<p> }</p>
<p> break; </p>
<p> case 'DELETE':</p>
<p> $jsonData = json_decode(file_get_contents("php://input"), true);</p>
<p> </p>
<p> </p>
<p> ...........</p>
<p> </p>
<p> if($row['cnt'] < 1){</p>
<p> http_response_code(200);</p>
<p> echo json_encode("Employee delete.");</p>
<p> }else{</p>
<p> http_response_code(404);</p>
<p> echo json_encode("Data could not delete");</p>
<p> }</p>
<p> }else{</p>
<p> echo json_encode("비밀번호가 틀립니다.");</p>
<p> }</p>
<p> }else{</p>
<p> http_response_code(404);</p>
<p> echo json_encode("Data could not be updated");</p>
<p> }</p>
<p> break;</p>
<p> }</p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
3년 전
정통방식의 rest api는 아니지만
그래도 데이터를 주고 받는 부분에서는 api가 맞다고 할 수 있습니다.
정통방식이라하면
get,post,put,delete 등
url체계부터 조금 차이가 있습니다.
PHP로 api를 만들때는
composer를 설치하시고
slim4 composer 등을 사용하시면 도움됩니다.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인