yesllc/dadjokes

用于测试Kubernetes、Kong、Istio、Kuma等的Dad jokes微服务

20211111 2021-11-11 16:40 UTC

This package is auto-updated.

Last update: 2024-09-11 22:43:24 UTC


README

Dad Jokes As A Microservice

Docker Pulls GitHub stars GitHub release MIT

这是一个用于测试API网关(如Kong、Kubernetes K8s、OpenShift、Docker)以及服务网格(如Kuma或Istio)等的微服务或echo服务示例,可作为httpbin的替代品。您可以随意添加自己的笑话到这个仓库。除了Dad jokes,服务还会自动回显传入请求的信息。这有助于测试和故障排除。如果您不想显示回显请求数据,只需对/noecho端点进行请求或通过将dadjokes服务的noecho环境变量设置为true来配置即可。

托管服务/演示

访问http://dadjokes.online以查看服务演示。

用法

端点URI : /

方法 : GET POST PUT PATCH DELETE

参数 : 可选

成功响应 : 200 OK

    "Joke": {
        "Opener": "I burned 2000 calories today",
        "Punchline": "I left my food in the oven for too long.",
        "Processing Time": "0.001223"
    },
    "RequestEcho": {
        "Headers": {
            "Host": "dadjokes.online",
            "Connection": "keep-alive",
            "X-Forwarded-For": "74.11.135.11",
            "X-Forwarded-Proto": "http",
            "X-Forwarded-Host": "dadjokes.online",
            "X-Forwarded-Port": "80",
            "X-Real-IP": "74.11.135.11",
            "Cache-Control": "max-age=0",
            "Upgrade-Insecure-Requests": "1",
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36",
            "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
            "Accept-Encoding": "gzip, deflate",
            "Accept-Language": "en-US,en;q=0.9",
            "Cookie": "fsl=eijse8smkrfce80or4frpjnf87"
        },
        "Method": "GET",
        "Origin": "192.11.166.11",
        "URI": "/echo",
        "Arguments": {
            "uri": "/echo"
        },
        "Data": "",
        "URL": "http://dadjokes.online/echo"
    }
}

禁用回显功能

要禁用传入响应中的回显,只需将docker环境变量DADJOKES_NOECHO=TRUE添加到您的配置中,或者只需在请求调用的第一层使用\noecho端点。例如

端点URI : /noecho/abc/efg/

方法 : GET POST PUT PATCH DELETE

参数 : 可选

成功响应 : 200 OK

{
  "Jokes": {
    "Opener": "What did the mountain climber name his son?",
    "Punchline": "Cliff",
    "Processing Time": "0.001530"
  }
}

安装

部署示例

示例目录文件夹中查看Kubernetes、Kong for Kubernetes Ingress Controller和docker-compose的使用示例。

使用Docker

Docker镜像基于Alpine 3.11,运行PHP 7.3和Apache。容器公开了8100(HTTP)和8143(HTTPS)端口,使用自签名证书。如果您想更改容器配置,可以自由使用此仓库中的Dockerfile(https://github.com/yesinteractive/dad-jokes_microservice/blob/master/Dockerfile)。否则,您可以使用以下命令从DockerHub拉取最新镜像

docker pull yesinteractive/dadjokes

典型基本用法(以下示例在主机端口8100和8143上公开dadjokes)

$ docker run -d \
  -p 8100:8100 \
  -p 8143:8143 \
  -e DADJOKES_NOECHO=FALSE \
  yesinteractive/dadjokes

在Dockerfile中的典型用法

FROM yesinteractive/dadjokes
RUN echo <your commands here>