Golangnet/http에 RESTful API 만들기 #1 라우팅 쓰기

3428 단어 golangAPIrestfultech

개시하다


업무는 PHP와 Type Script(Node)로 서버 관련 내용을 자주 쓰지만, 부업에 참여하는 프로젝트에서는 RESTful의 WEB API를 골랑으로 쓴다.(제안하면 OK)
입구에서 루트까지의 구성을 소개하고 싶습니다.만약 더 좋은 구성이 있다면 반드시 댓글에서 m()를 지적해 주십시오.m

이 기사를 통해서 알게 된 것들.

  • net/http로 라우팅과 컨트롤러(Laavel이 말한)를 분리하는 방법
  • RESTful이 되도록 각 방법별로 기능을 분리하는 방법
  • 소스 코드


    이후 실제 코드와 설명은 파일 단위로 기술한다.

    app.go


    app.go
    package main
    
    import (
        "log"
        "net/http"
    )
    
    func main()  {
        setRouter()
    
        err := http.ListenAndServe(":8080", nil)
        if err != nil {
            log.Fatal(err)
        }
    }
    
    
    setRouter() 함수화하고 다른 파일을 통해 경로를 설정합니다.

    router.go


    route
    package main
    
    import (
        "net/http"
        "os"
    )
    
    // setRouter ルーティングをセット
    func setRouter() {
        // ユーザのルーティング
        http.HandleFunc("/api/user", userCtrl)
    }
    
    
    http.HnadleFunc에서 일치하는 경로를 지정할 때 실행되는 함수입니다.userCtrl는 실행할 함수의 이름입니다.userCtrl()도 다른 파일에 정의되어 있습니다.
    이미지는 라벨의 홈페이지다.php입니다.
    여기서 주의해야 할 것은 이 단계는 방법을 구분하지 않는다는 것이다.userCtrl()에서 분배 방법.

    ctrl-user.php


    ctrl-user
    package main
    
    import (
        // 次回の記事で紹介します "local.packages/service"
        "net/http"
    )
    
    func userCtrl(w http.ResponseWriter, r *http.Request)  {
        // 次回の記事で紹介します thisService := service.UserService.Constructor(w)
        if r.Method == http.MethodGet {
            // ここで本来はサービス層に、取得したクエリの値などを渡す
    	// ここも次回の記事で紹介します。
    	// user := thisService.getUser(userId)
    	w.Write("成功") // 本来はJson形式などで、userを返す
    	return
        } else if r.Method == http.MethodPost {
        } else if r.Method == http.MethodPut {
        } else if r.Method == http.MethodDelete {
        }
    }
    
    userCtrl()의 두 파라미터는 상기 파일의 handleFunc에서 은밀하게 전달된다.
    방법의 분배는 조건식에 따라 진행된다.각자 실행하고 싶은 방법으로 필요한 코드를 써라.
    이 파일에서, 우리는 요청에서 값을 얻고, 이 값을 서비스 층에 전달하는 것을 책임질 것이다.
    서비스층과 창고층은 다음 글에서 소개할 예정이다.

    총결산


    이상 구글 표준 포장된 네트워크/http에 루트를 써 보았습니다.
    다음 글은 서비스층과 창고층의 구성과 대상을 대상으로 하는 쓰기 방법을 소개할 것이니 기대해 주십시오!
    끝까지 읽어주셔서 감사합니다 m()m

    좋은 웹페이지 즐겨찾기