Curl 및 HTTP 상태 코드에 대해 자세히 알아보기 _100DaysOfCode 챌린지 2 일째

4192 단어 curlJSONRailsapi

소개



이 기사는 Twitter에서 인기 해시 태그 #100DaysOfCode를 붙여,
100일간 프로그래밍 학습을 계속하는 도전에 도전한 2일째의 기록입니다.

운영 환경


  • 루비 2.4.1
  • Rails 5.0.1

  • 현재 학습중인 내용의 저장소



    오늘 배운 것


  • curl의 옵션 명령에 대해서
  • Postman의 기본 사용법
  • configfile_watcher 설정
  • HTTP 상태 코드 정보

  • curl 명령 옵션 정보



    curl은 URL을 사용하여 데이터 전송 및 API 응답을 확인할 수 있는 명령줄 도구입니다.
    기본적으로 포함되어 있지 않으면 별도 설치가 필요합니다.
    # Ubuntuの場合
    sudo apt-get install curl
    
    # Macの場合
    brew install curl
    

    -v:HTTP 요청에 대한 자세한 정보 표시



    사용법


    curl http://localhost:3000/contacts -v

    출력 결과


    *   Trying ::1...
    * TCP_NODELAY set
    * Connection failed
    * connect to ::1 port 3000 failed: Connection refused
    *   Trying 127.0.0.1...
    * TCP_NODELAY set
    * Connected to localhost (127.0.0.1) port 3000 (#0)
    
    > GET /contacts HTTP/1.1
    > Host: localhost:3000
    > User-Agent: curl/7.54.0
    > Accept: */*
    >
    < HTTP/1.1 200 OK
    < Content-Type: application/json; charset=utf-8
    < ETag: W/"af9adc760a6000018e12eca41ba5fcd1"
    < Cache-Control: max-age=0, private, must-revalidate
    < X-Request-Id: 6757a209-b0bf-4109-93e8-bad6fd350197
    < X-Runtime: 0.360681
    < Transfer-Encoding: chunked
    <
    
    ****
    以下Body情報
    ****
    

    -X:HTTP 메소드 지정



    사용법


    curl http://localhost:3000/contacts -X POST -H "Content-Type: application/json" -d '{"name": "Daniel", "email": "daniel.dany.com"}'
    여기에서는 HTTP 메소드로서 POST를 지정. -d 를 붙임으로써 POST할 데이터를 지정할 수 있다.

    또, -H "Content-Type: application/json" 로서 -H 옵션으로 헤더 정보를 부여하면 JSON 형식으로 데이터를 송부하는 것이 가능.

    그 때, POST 하는 데이터는 key: value 의 형식으로.

    GET에 대해서는 디폴트로 지정되어 있으므로, 기본적으로는 POST/PATCH/DELETE 를 사용한다.

    -i : 출력에 HTTP 헤더 정보 포함



    사용법


    curl http://localhost:3000/contacts -i

    출력 결과


    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    ETag: W/"af9adc760a6000018e12eca41ba5fcd1"
    Cache-Control: max-age=0, private, must-revalidate
    X-Request-Id: 2a8fdd62-b109-4ec3-87c9-3319d665634d
    X-Runtime: 0.460770
    Transfer-Encoding: chunked
    
    ****
    以下Body情報
    ****
    

    HTTP 상태 코드



    1XX계



    HTTP 상태에 포함된 정보

    2XX계



    요청 성공

    3XX계



    요청 리디렉션

    4XX계



    클라이언트 측 오류

    5XX계



    서버측 오류

    상태 코드에 대한 자세한 내용은 아래 링크를 참조하십시오.
    htps : // s 가짜 s. 이 m

    Rails에서 상태 코드를 지정하는 방법



    사용법


    status: :rails_code
    기호로 상태 코드를 전달할 수 있습니다. 기술 장소는 각 controller의 메소드내에서.


    def create
        @contact = Contact.new(contact_params)
        if @contact.save
          render json: @contact, status: :created, location: @contact
        else
          render json: @contact.errors, status: :unprocessable_entity
        end
      end
    

    파일 변경을 즉시 반영하는 설정


    # config/environments/development.rb
    
    config.file_watcher = ActiveSupport::FileUpdateChecker
    

    rails server를 재기동하지 않아도 파일의 변경을 즉시 반영할 수 있다.

    Postman 사용법



    Chrome 웹 스토어에서 Postman 및 검색.

    다운로드가 완료되면 열립니다.

    GET에서 사용하는 방법





    POST에서 사용하는 방법







    참고 링크

    좋은 웹페이지 즐겨찾기