<aside> 🐳 도커 데이터 초기화docker-compose down -v

도커 다시 키기docker-compose up 하면 도커 상태 다 보면서 시작 → docker-compose -d 하면 데몬? 상태 안보고 올라감 도커 상태확인

docker ps

</aside>

1. 패치로 유저네임 받기

  1. ‘userName’ = $this→patch(’name’);

  2. 함수의 매개변수에서 $userName 삭제

    $req_param = [ // 유저 이름을 routes 에서 전달한 부분인 users/findUserNo/$1 부분 중 숫자로 지정
    			'userNo' => $userNo,
    			'userName' => $this->patch('name'), // 패치로 받아서 바로 할당하기
    		];
    
  3. routes.php에서 patch의 매개변수 삭제

    → BAD_REQUEST 에러 메시지 뜸!

    userName을 안넣어줬기 때문에

    Untitled

  4. postman에서 json으로 데이터 넣기

    Untitled

이 API의 핵심은 PUT도 있음

PATCH은 들어온 데이터만 업데이트 PUT은 들어온 데이터만 빼고 다 없애버림(PUT은 전체를 다 보내야함)

RESTful은 path 파라미터를 많이 씀

Untitled

2. 유저 생성하기

  1. route에서 post 함수로 갈 path 지정하기

    $route['users']['POST']  = 'users/createUser';  // 유저 생성
    
  2. createUser_post 함수 만들기

    public function createUser_post()
    	{
    		$this->data_validation->clear();
    
    		$req_param = [
    			'userName' => $this->post('name'),
    		]; 
    
    		// 필수 항목
    		$this->data_validation->set_rules('userName','','trim|xss_clean|required');
    
    		try
    		{
    			// 요청 파라미터 검증
    			$req_param = $this->data_validation->validate( $req_param );
    
    			// 초기값 세팅
    			$data = NULL;
    
    			$userNo = $this->Model_users->insert_user($req_param); // insert_user 함수가 생성한 유저의 고유번호 리턴함 (고유 번호는 생성 순서대로 매겨짐)
    
    			$response = [
    				'code'     => SUCCESS,
    				'message'  => 'SUCCESS',
    				'response' => ['userNo' => $userNo],
    				'request'  => $req_param,
    			];
    		}
    		catch( Validation_Exception $e )
    		{
    			// 요청 파라미터 에러
    			$response['code']    = BAD_REQUEST;
    			$response['message'] = 'BAD_REQUEST';
    			$response['request'] = $req_param;
    
    			log_message( 'exception', sprintf( '[%s] Validation_Exception=[%s]', __METHOD__, $e->getMessage() ) );
    		}
    		catch( Db_exception $e )
    		{
    			// DB 오류
    			$response['code']    = INTERNAL_SERVER_ERROR;
    			$response['message'] = 'INTERNAL_SERVER_ERROR';
    			$response['request'] = $req_param;
    
    			log_message( 'exception', sprintf( '[%s] Db_exception=[%s]', __METHOD__, $e->getMessage() ) );
    		}
    		catch( Application_exception $e )
    		{
    			$response['code']    = $e->getCode();
    			$response['message'] = $e->getMessage();
    			$response['request'] = $req_param;
    
    			log_message( 'exception', sprintf( '[%s] Application_exception=[%s]', __METHOD__, $e->getMessage() ) );
    		} # 에러들은 try catch 로 거르고
    
    		$this->dataResponse( $response ); # 데이터를 json 으로 떨굼
    	}
    

3. 유저 삭제하기

  1. route 생성

    $route['users/(:num)']['DELETE'] = 'users/deleteUser/$1';  // 유저 삭제