diff options
author | Loïc Hoguin <[email protected]> | 2016-08-29 12:39:49 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2016-08-29 12:40:03 +0200 |
commit | c807880f7ac73f813b2660ea81a00f7712a4e793 (patch) | |
tree | ba1d09e9b177f230665a80513b33fbd532000ce4 /_build/static/archives/extend/2014-May/000386.html | |
parent | b1df25a7d9cda697513650659b781b55b40898f8 (diff) | |
download | ninenines.eu-c807880f7ac73f813b2660ea81a00f7712a4e793.tar.gz ninenines.eu-c807880f7ac73f813b2660ea81a00f7712a4e793.tar.bz2 ninenines.eu-c807880f7ac73f813b2660ea81a00f7712a4e793.zip |
Add old mailing list archives
Diffstat (limited to '_build/static/archives/extend/2014-May/000386.html')
-rw-r--r-- | _build/static/archives/extend/2014-May/000386.html | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/_build/static/archives/extend/2014-May/000386.html b/_build/static/archives/extend/2014-May/000386.html new file mode 100644 index 00000000..6435f3b5 --- /dev/null +++ b/_build/static/archives/extend/2014-May/000386.html @@ -0,0 +1,134 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<HTML> + <HEAD> + <TITLE> [99s-extend] REST responses + </TITLE> + <LINK REL="Index" HREF="index.html" > + <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20REST%20responses&In-Reply-To=%3C537BA2EA.5080108%40ninenines.eu%3E"> + <META NAME="robots" CONTENT="index,nofollow"> + <style type="text/css"> + pre { + white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */ + } + </style> + <META http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <LINK REL="Previous" HREF="000384.html"> + <LINK REL="Next" HREF="000388.html"> + </HEAD> + <BODY BGCOLOR="#ffffff"> + <H1>[99s-extend] REST responses</H1> + <B>Loïc Hoguin</B> + <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20REST%20responses&In-Reply-To=%3C537BA2EA.5080108%40ninenines.eu%3E" + TITLE="[99s-extend] REST responses">essen at ninenines.eu + </A><BR> + <I>Tue May 20 20:46:02 CEST 2014</I> + <P><UL> + <LI>Previous message: <A HREF="000384.html">[99s-extend] REST responses +</A></li> + <LI>Next message: <A HREF="000388.html">[99s-extend] REST responses +</A></li> + <LI> <B>Messages sorted by:</B> + <a href="date.html#386">[ date ]</a> + <a href="thread.html#386">[ thread ]</a> + <a href="subject.html#386">[ subject ]</a> + <a href="author.html#386">[ author ]</a> + </LI> + </UL> + <HR> +<!--beginarticle--> +<PRE>Hi, + +On 05/20/2014 06:27 PM, Paulo F. Oliveira wrote: +><i> Hello. +</I>><i> +</I>><i> First of all, thanks for the great work you've done with cowboy. I've +</I>><i> been using it with a fait amount of success and I'm a fairly new Erlang +</I>><i> developer. I'm mainly interested in the REST "interface" of the +</I>><i> application and its way of doing RESTful things, and I like the way you +</I>><i> did it (what with all the content_types_provided, service_available, +</I>><i> etc. functions). I've tested the way the system reacted to the different +</I>><i> Accept, Content-Type, etc. headers and always got very well-opinionated +</I>><i> responses (406, 415, ...). +</I>><i> +</I>><i> A couple of questions remain though (I'm sorry if they've been asked +</I>><i> already but I've searched the web for answers and read the available +</I>><i> docs and couldn't find them): +</I>><i> +</I>><i> 1. is it expected that, if I use cowboy_req:reply/2 in a GET handler +</I>><i> (coming from content_types_provided), the onresponse/4 hook be called +</I>><i> twice? I guess one is due to the reply and the other one due to the +</I>><i> workflow of the request, but is there a way to prevent the second execution? +</I> +If you reply from a callback you must call {halt, Req, State} to stop +processing. + +><i> 2. if I want to JSON-parse ALL my requests should I a) use the +</I>><i> onrequest/1 hook or b) do this on a per-request basis? Because I'd like +</I>><i> to reply with a 400 ASAP but keep going if the JSON validates (I'm going +</I>><i> to use JSON-schema for validating input); and, if possible, have the +</I>><i> JSON-parsed body stored somewhere for future manipulation. +</I> +It makes little sense to do it before the accept callback you define. +Not only because you will duplicate content-type checks and whatnot, but +also because you don't actually win anything from doing this. If you are +using JSON, then JSON processing will take infinitely more resources +than the REST code. + +><i> 3. I haven't seen examples that made use of the State (from the function +</I>><i> returns). When should I use this instead of the Request metadata? I'd +</I>><i> like to be able to set a generic error state for a request (either in +</I>><i> meta ou State) and that have a "standard" error response be created at a +</I>><i> later time (in a unique function, for example - e.g. onresponse/4). +</I> +State is for the functions within the current module. Look at +cowboy_static for an example. + +><i> 4. is there anything like a catch-all exception handler? I'd like to +</I>><i> catch exceptions that occur anywhere so I could log them and analyze +</I>><i> them at a later moment. +</I> +You can add your own error_logger handler, or use something like lager. +All errors end up sending a message to error_logger. + +><i> I'm probably abusing the onresponse/onrequest hooks already, so your +</I>><i> answers should help me clarify this. +</I> +Sounds like it! + +><i> Thanks. +</I>><i> +</I>><i> - Paulo +</I>><i> +</I>><i> +</I>><i> _______________________________________________ +</I>><i> Extend mailing list +</I>><i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A> +</I>><i> <A HREF="https://lists.ninenines.eu/listinfo/extend">https://lists.ninenines.eu/listinfo/extend</A> +</I>><i> +</I> +-- +Loïc Hoguin +<A HREF="http://ninenines.eu">http://ninenines.eu</A> + +</PRE> + +<!--endarticle--> + <HR> + <P><UL> + <!--threads--> + <LI>Previous message: <A HREF="000384.html">[99s-extend] REST responses +</A></li> + <LI>Next message: <A HREF="000388.html">[99s-extend] REST responses +</A></li> + <LI> <B>Messages sorted by:</B> + <a href="date.html#386">[ date ]</a> + <a href="thread.html#386">[ thread ]</a> + <a href="subject.html#386">[ subject ]</a> + <a href="author.html#386">[ author ]</a> + </LI> + </UL> + +<hr> +<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend +mailing list</a><br> +</body></html> |