기록기의 HTTP 서버를 잊어버려서 테스트용 스크립트를 만들어 봤습니다
개시하다
개발 과정에서 이미지와 생성된 HTML 등을 로컬 HTTP 서버에 맡기거나 프런트엔드 북을 사용하지 않는 모듈 API 서버를 시작하려고 할 때 자주 발생한다.
매번 쓰기 HTTP 서버 1개 때 구글 선생님께 물어보고, 자신의 지령 이력서에서 찾아보세요. 번거로운 스크립트를 썼기 때문에 쪽지에 남깁니다.나는 머지않아 한 일을 잊어버릴 것 같아...
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
그럼 해피해킹!
Reference
이 문제에 관하여(기록기의 HTTP 서버를 잊어버려서 테스트용 스크립트를 만들어 봤습니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/koduki/articles/82a8ea5bb24d79텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)