私が要求を行うためにHTTPサーバを使用して、Prologでプログラムを作成しています...プロローグHTTP派遣ハンドルカプセル化
私はそれを再利用することができる方法でコードをカプセル化したいとHTTPのものを持っています
:- http_handler('/test', foobar, []).
はこのような何かを持っていることが可能です::
一つのモジュールで、別のモジュールでリクエストを処理するために、私の「コントローラ」など私は、httpディスパッチハンドラ登録で問題が発生し始めました
register_handler(path, callback) :-
http_handler(path, callback, []).
私はそれを使ってみましたが、 "コールバック"パラメータのためにエラーが発生している可能性があります。私が使用しても、コールバック述語は、別のモジュールで定義されている:
:-consult(api_controller).
[EDIT]
server.pl
:- use_module(library(http/thread_httpd)).
:- use_module(library(http/http_dispatch)).
:- use_module(library(http/http_parameters)).
:- use_module(library(http/http_json)).
:- use_module(api_controller).
:- http_handler('/test', foo, []).
server(Port):-http_server(http_dispatch, [port(Port)]).
api_controller.pl
foo(_request) :-
format('Content-type: text/plain~n~n'),
format('Hello world!~n').
エラー:
http_dispatch:call_action/2: Undefined procedure: foo/1
お返事ありがとうございます。私は理解したと思う! –
実際、それは私のために働いていない..編集plzを参照してください –
私のポストPLZを参照してください。現在、あなたは 'include/1'を使わず** use_module/1'を使っていません。あなたは**/**を使っていません。 'prefix'オプションは' [] 'です。 – mat