기록기의 HTTP 서버를 잊어버려서 테스트용 스크립트를 만들어 봤습니다

8943 단어 Rubyfrontendmocktech

개시하다


개발 과정에서 이미지와 생성된 HTML 등을 로컬 HTTP 서버에 맡기거나 프런트엔드 북을 사용하지 않는 모듈 API 서버를 시작하려고 할 때 자주 발생한다.
매번 쓰기 HTTP 서버 1개 때 구글 선생님께 물어보고, 자신의 지령 이력서에서 찾아보세요. 번거로운 스크립트를 썼기 때문에 쪽지에 남깁니다.나는 머지않아 한 일을 잊어버릴 것 같아...

httpd4test

  • Ruby 기반의 간편한 웹 서버.WEBrick 래치
  • 현재 디렉토리를 지원하는 웹 호스트
  • API용 Echo Server(CROS 지원) 지원
  • Docker가 있으면 루비가 없어도 작동
  • https://github.com/koduki/httpd4test

    설치하다.


    내부에서 Docker를 사용하기 때문에 Docker가 동작할지 미리 확인합니다.
    $ sudo sh -c 'curl https://raw.githubusercontent.com/koduki/httpd4test/main/cli/httpd4test > /usr/bin/httpd4test && chmod a+x /usr/bin/httpd4test'
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100   186  100   186    0     0    704      0 --:--:-- --:--:-- --:--:--   704
    $ httpd4test -h
    Usage: httpd4test [OPTION]...
    This is http server for testing
    Options:
            -p, --port               port number of http server
            -m, --message            echo message
            -h, --help               this message
            --json                   change content-type to 'application/json'
    

    사용법


    정적 컨텐츠 초대


    기본 포트 8080에 현재 디렉토리 마운트
    $ touch a b c
    $ ls -l
    total 0
    -rw-r--r-- 1 koduki koduki 0 Dec 26 12:17 a
    -rw-r--r-- 1 koduki koduki 0 Dec 26 12:17 b
    -rw-r--r-- 1 koduki koduki 0 Dec 26 12:17 c
    $ httpd4test
    [2020-12-26 20:17:47] INFO  WEBrick 1.7.0
    [2020-12-26 20:17:47] INFO  ruby 3.0.0 (2020-12-20) [x86_64-linux]
    Server is listening on :8080
    Return local contents
    [2020-12-26 20:17:47] INFO  WEBrick::HTTPServer#start: pid=1 port=8080
    
    동작 확인.
    $ lynx http://localhost:8080/
                                                                     Index of /
                                    Index of /
    
             Name        Last modified   Size
       Parent Directory 2020/12/26 20:49 -
       a                2020/12/26 20:17 0
       b                2020/12/26 20:17 0
       c                2020/12/26 20:17 0
         _____________________________________________________________
    
        WEBrick/1.7.0 (Ruby/3.0.0/2020-12-20) at localhost:8080
    

    가상 API 생성


    매개변수로 제공된 JSON을 반환합니다.
    $ httpd4test -p 5000 -m '{"message":"Hello World"}' --json
    [2020-12-27 00:25:25] INFO  WEBrick 1.7.0
    [2020-12-27 00:25:25] INFO  ruby 3.0.0 (2020-12-20) [x86_64-linux]
    Server is listening on :5000
    Return value is {"message":"Hello World"}
    [2020-12-27 00:25:25] INFO  WEBrick::HTTPServer#start: pid=1 port=5000
    
    curl 명령을 사용하여 확인합니다.
    $ curl -v http://localhost:5000/
    *   Trying 127.0.0.1:5000...
    * TCP_NODELAY set
    * Connected to localhost (127.0.0.1) port 5000 (#0)
    > GET / HTTP/1.1
    > Host: localhost:5000
    > User-Agent: curl/7.68.0
    > Accept: */*
    >
    * Mark bundle as not supporting multiuse
    < HTTP/1.1 200 OK
    < Access-Control-Allow-Origin: *
    < Access-Control-Allow-Headers: X-Requested-With, Origin, X-Csrftoken, Content-Type, Accept
    < Content-Type: application/json
    < Server: WEBrick/1.7.0 (Ruby/3.0.0/2020-12-20)
    < Date: Sun, 27 Dec 2020 00:26:55 GMT
    < Content-Length: 25
    < Connection: Keep-Alive
    <
    * Connection #0 to host localhost left intact
    {"message":"Hello World"}%
    

    총결산


    아마 비슷한 물건이나 더 많은 공구를 만들 수 있을 거예요. 별밖에 없어요. 그런데 찾거나 기억하는 것도 귀찮아서 해봤어요.
    이번에는 Docker를 사용하지만 footprint가 좋지 않으니 mururuby나 RubyPacker로 싱글 바이너리를 만들어보세요...
    참고로 컨테이너는 무의미하게 루비3로 만들어졌기 때문에 수중에 있는 스크립트는 처음으로 루비3를 향해 쓴 코드다.기본적으로 어느 루비든 움직일 수 있는 정도의 코드량 w
    그럼 해피해킹!

    좋은 웹페이지 즐겨찾기