TIL 20210919 [항해99 7일차]

Arong·2021년 9월 19일
0

API는 은행 창구와 같은 것!
같은 예금 창구에서도 개인 고객이냐 기업 고객이냐에 따라 가져와야 하는 것 / 처리해주는 것이 다른 것처럼, 클라이언트가 요청 할 때에도, "방식"이 존재한다.
HTTP 라는 통신 규약을 따르며, 클라이언트는 요청할 때 HTTP request method(요청 메소드)를 통해, 어떤 요청 종류인지 응답하는 서버 쪽에 정보를 알려주는 것이다.
쉽게말해, API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체로 볼 수 있다.

  • GET → 통상적으로! 데이터 조회(Read)를 요청할 때
    예) 영화 목록 조회
    ->데이터 전달: URL 뒤에 물음표를 붙여 key=value로 전달
  • GET 방식으로 데이터를 전달하는 방법
    ? : 여기서부터 전달할 데이터가 작성된다는 의미
    & : 전달할 데이터가 더 있다는 뜻
    예시) google.com/search?q=아이폰&sourceid=chrome&ie=UTF-8
    위 주소는 google.com의 search 창구에 다음 정보를 전달한다.
    q=아이폰 (검색어)
    sourceid=chrome (브라우저 정보)
    ie=UTF-8 (인코딩 정보)
          #GET요청 API 코드
          @app.route('/test', methods=['GET'])
          def test_get():
          title_receive = request.args.get('title_give')
          print(title_receive)
          return jsonify({'result':'success', 'msg': '이 요청은 GET!'})
          #GET요청 확인 Ajax코드
          $.ajax({
           type: "GET",
           url: "/test?title_give=봄날은간다",
           data: {},
           success: function(response){
              console.log(response)
           }
         })
  • POST → 통상적으로! 데이터 생성(Create), 변경(Update), 삭제(Delete) 요청 할 때
    예) 회원가입, 회원탈퇴, 비밀번호 수정
    -> 데이터 전달: 바로 보이지 않는 HTML body에 key:value형태로 전달
          # POST 요청 API 코드
          @app.route('/test', methods=['POST'])
       def test_post():
          title_receive = request.form['title_give']
          print(title_receive)
          return jsonify({'result':'success', 'msg': '이 요청은 POST!'})
          # POST 요청 확인 Ajax코드
           $.ajax({
           type: "POST",
           url: "/test",
           data: { title_give:'봄날은간다' },
           success: function(response){
              console.log(response)
           }
         })
    



항해99를 시작한지 1주차가 벌써 지나간다. 과제를 하면서 JWT, 서버사이드 렌더링, 파일 업로드, 좋아요 기능 등 많은 것들을 배우는 시간을 가질 수 있었다.
내게 아쉬웠던 점은 체력이 많이 따라주지 못해 아침에 제때 일어나는게 아직 힘들다는것과 시간에 쫓겨 1주차 과제때 했던 내용들을 더 잘 정리하지 못한게 아쉽다. 99일을 성공적으로 마치기 위해서 체력관리도 잘 해야겠다. 추석지나고 2주차 시작될때는 운동시간도 꼭 가질수 있길..!

profile
아롱의 개발일지

0개의 댓글

관련 채용 정보