테스트 사이트 - 개발 중인 베타 버전입니다

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 포인트
그누위즈

정통방식의 rest api는 아니지만

그래도 데이터를 주고 받는 부분에서는 api가 맞다고 할 수 있습니다.

정통방식이라하면

get,post,put,delete 등

url체계부터 조금 차이가 있습니다.

 

PHP로 api를 만들때는

composer를 설치하시고

slim4 composer 등을 사용하시면 도움됩니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

네.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

하틴
3년 전
답변감사합니다!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인