Skip to content
Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
ynm3k
.gitignore
LICENSE
README.md
setup.py
y3k

README.md

ynm3k

ynm3k(文档)取名自"要你命3000",目前的功能包括

  • 一个通过完全通过json进行配置的mock调试/反向代理服务器
  • 一个静态文件服务器(除静态目录外,还可以服务zip文件)

安装方法

通过pip安装

sudo pip install ynm3k

基本的使用方法

在8080启动一个mock服务器,根据mock.json的规则进行转发和改写请求

y3k --mock mock.json --port 8080

mock.json的一些例子如下所示:

  • 根据前缀转发请求至不同服务器
[
  ["/api/", "http://example.com/api/"],
  ["/static/my_work.html", "http://127.0.0.1/static/my_work.html"],
  ["/", "http://192.168.1.10:8080/"]
]
  • 为每个请求增加一个特殊的header,比如设置X-Forwarded-For
[
 [{"type": "prefix",
   "path": "/",
   "headers": {"X-Forwarded-For": "1.2.3.4"}},
  {"type": "remote",
   "url": "https://ifcfg.cn/"}
 ]
]
  • 转发某个前缀下的请求到一个本地目录下,并且对于/prefix/dirname/这样的请求自动返回该目录下的index.html的内容
[
    ["/prefix/", {"type": "static",
                  "path": "examples/dir",
                  "try_files": "index.html"}
    ]
]
  • 为每个请求的response,增加一个特殊的header,比如设置Cache-Control
[
   [
      "/",
      {
         "type" : "remote",
         "url" : "https://ifcfg.cn/",
         "headers" : {
            "Cache-Control" : "private"
         }
      }
   ]
]
  • 改写特殊的请求(对于POST /test 这个请求,结果是文件test.json的内容)
[
   [
     {
       "type": "exact",
       "path": "/test",
       "method": "POST"
     },
     {
       "type": "file",
       "body": "test.json",
       "headers": {"content-type": "json"}
     }
   ],
   ["/", "http://192.168.1.10:8080/"]
]
You can’t perform that action at this time.