Golangnet/http에 RESTful API 만들기 #1 라우팅 쓰기
개시하다
업무는 PHP와 Type Script(Node)로 서버 관련 내용을 자주 쓰지만, 부업에 참여하는 프로젝트에서는 RESTful의 WEB API를 골랑으로 쓴다.(제안하면 OK)
입구에서 루트까지의 구성을 소개하고 싶습니다.만약 더 좋은 구성이 있다면 반드시 댓글에서 m()를 지적해 주십시오.m
이 기사를 통해서 알게 된 것들.
net/http
로 라우팅과 컨트롤러(Laavel이 말한)를 분리하는 방법소스 코드
이후 실제 코드와 설명은 파일 단위로 기술한다.
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
Reference
이 문제에 관하여(Golangnet/http에 RESTful API 만들기 #1 라우팅 쓰기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/takeru0430/articles/ebd4f330c4a146텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)