更改Beepap中的文本响应的Mimetypes
Beepapep(6)我正在研究一个我正在实施的项目哔哔。我正在做的一部分是在我返回的API中实现API杰森。如果您渲染模板,这很容易完成,
handle_request.(“指数”,[])- >{使成为那“home / index.html”,[],[{内容类型那“application / json”]}。
但是当您只想返回任意二进制或列表数据而不是呈现模板时,就没有简单的方式来完成它。通过打开你的方式很容易添加功能src / project_web.erl.
文件和更换循环/ 1
和:
环形(雷)- >%% Setup Env ...initnenv.=Mochiweb_env.:setup_environment.(雷),env.=setup_session.(雷那initnenv.),%%可能的返回值%% {渲染,查看,数据}%% {渲染,查看,数据,选项}%% {text,data}%% {text,data,选项}%% {JSON,DATA}%% {重定向,URL}%% {静态,文件}%% {错误,_}案件哔哔:派遣(env.)的{使成为那看法那数据}- >{好的那内容}=render_template.(看法那数据那env.),雷:回应({200.那[{“内容类型”那“text / html”} | [get_cookie.(env.)]],内容});{使成为那看法那数据那选项}- >{地位那内容类型那标题}=Extract_Options.(选项那200.那“text / html”),{好的那内容}=render_template.(看法那数据那env.),雷:回应({地位那[{“内容类型”那内容类型} | [get_cookie.(env.)|标题]],内容});{文本那内容}- >雷:回应({200.那[{“内容类型”那“文字/平原”} | [get_cookie.(env.)]],内容});{文本那内容那选项}- >{地位那内容类型那标题}=Extract_Options.(选项那200.那“文字/平原”),雷:回应({地位那[{“内容类型”那内容类型} | [get_cookie.(env.)|标题]],内容});{重定向那URL.}- >雷:回应({302.那[{“地点”那URL.},{“内容类型”那“text / html; charset = utf-8”}],“});{静止的那文件}- >“/”++staticfile.=文件那雷:服务_file.(staticfile.那skel_deps.:local_path.([“万维网”]));{错误,_}- >雷:回应({500.,[],“服务器错误”})结尾。
并替换get_options / 1
和:
Extract_Options.(选项那defaultStatus.那defaultmimetype.)- >{普罗斯运选者:get_value.(地位那选项那defaultStatus.),普罗斯运选者:get_value.(内容类型那选项那defaultmimetype.),普罗斯运选者:get_value.(标题那选项,[])}。
然后,您可以使用任意Mimetypes返回任意数据。
handle_request.(“指数”,[])- >杰森=Mochijson.:编码({塑造那[{一种那“b”},{B.那“C”}]}),{文本那杰森那[{内容类型那“application / json”]}。
您可以修补您的项目,或抓住我修补的beepbeep版本虽然希望我们能够在没有太多麻烦的情况下向上游这个补丁。