タイトルはかなり自明なので、これまでに試したコードをいくつか示します。
https://stackoverflow.com/a/713950から、
import cherrypy
from cherrypy import expose
cherrypy.config.update({'server.socket_port': 80})
class Test:
@expose
def test_call(self):
return "Testing"
cherrypy.quickstart(Test())
また、別の SO 投稿から、次の 2 つのバリアント:
cherrypy.config.update({
'server.socket_port': 80,
'/': {
'request.dispatch': cherrypy.dispatch.MethodDispatcher(),
'tools.trailing_slash.on': False
}
})
class Test:
def test_call(self, *args):
return json.dumps(args)
test_call.exposed = True
class API:
def __init__(self):
self.Test = Test()
class Root:
def __init__(self):
self.API = API()
cherrypy.tree.mount(Root())
cherrypy.quickstart(Root())
ここで提案されたバリエーション: Path Not Found in CherryPy
cherrypy.quickstart(cherrypy.Application(Root(), '/', {}))
これらを実行してhttp://mysite.com/test_callまたは mysite.com/api/test/test_call にアクセスしましたが、どちらも 404 を返す以外には何もしていないようです。
JSON をダンプするためのいくつかの関数呼び出しを公開できるのであれば、別のフレームワークを試すことに完全にオープンです。派手なものやクールなものは必要ありません。ただ機能しているだけです。
編集:どうやら私の問題は、サーバーがデフォルトでlocalhostであることを期待していたことでした。これは基本的に私を馬鹿にします。追加cherrypy.server.socket_host = "mydomain.com"
するとこれが修正されます。