[GO] Routing

타키탸키·2022년 11월 9일
0

GO-WEB

목록 보기
4/11
  • Mux
    • 서버, 멀티플렉서, ...
    • 경로와 메서드(GET, POST, ...)를 확인하여 그에 맞는 코드 실행
      • 경로와 서버가 소통하는 형태
      • 예전에는 경로가 PHP 같은 파일을 포인팅하여 라우팅

  • .NewServeMux
    • 새로운 ServeMux를 할당하고 ServeMux에 대한 포인터를 반환해주는 함수
    • 개발자가 임의로 생성할 수 있는 ServeMux
      • 세밀한 라우팅 가능
    • .Handle
      • 반환된 ServeMux의 메서드
      • 여러 핸들러를 정의한 후, 각 핸들러를 이 메서드에 넘기면 라우팅 구현 가능
  • 경로 끝에 /을 붙이면 그 하위 경로까지 해당 코드 실행
    • 캐시가 남으면 404 not found 오류가 뜨므로 주의

  • DefaultServeMux
    • ServeMux는 기본적으로 HTTP Request Router(Multiplexor)
    • 일반적으로 내장된 DefaultServeMux 사용
    • Handle을 통해 라우팅 패턴(주소) 추가
    • ListenAndServe의 인자로 nil을 넘기면 DefaultServeMux가 할당됨
  • http.HandleFunc
    • ServeHTTP 메서드를 가진 타입으로 변환하는 HandlerFunc 호출
      • 사용자 정의 함수(handler) 전달
    • 식별자(ResponseWriter, *Request) 형태로 handler 정의
      • type Handler가 아닌 고유 함수이다
    • DefaultServeMux 사용

  • third party package 사용하기
    • go get package 경로
    • Julien Schmidt 라우터
      • 라우터 생성
      • HTTP method를 라우터의 method로 사용
        • mux.GET(path, handler)
      • 경로에 변수를 담을 수 있다
    • 정확한 경로를 요구한다
      • /dog/를 허용하지 않는다
profile
There's Only One Thing To Do: Learn All We Can

0개의 댓글