Re: [Tools-discuss] RESTful API style guide

Michael Richardson <mcr+ietf@sandelman.ca> Wed, 19 June 2013 14:30 UTC

Return-Path: <mcr@sandelman.ca>
X-Original-To: tools-discuss@ietfa.amsl.com
Delivered-To: tools-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0405E21F9C3F for <tools-discuss@ietfa.amsl.com>; Wed, 19 Jun 2013 07:30:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bJ-AKCaJaxG6 for <tools-discuss@ietfa.amsl.com>; Wed, 19 Jun 2013 07:30:27 -0700 (PDT)
Received: from tuna.sandelman.ca (tuna.sandelman.ca [IPv6:2607:f0b0:f:3::184]) by ietfa.amsl.com (Postfix) with ESMTP id 53A4821F9C35 for <tools-discuss@ietf.org>; Wed, 19 Jun 2013 07:30:26 -0700 (PDT)
Received: from sandelman.ca (obiwan.sandelman.ca [IPv6:2607:f0b0:f:2::247]) by tuna.sandelman.ca (Postfix) with ESMTP id A801D2017D; Wed, 19 Jun 2013 11:34:06 -0400 (EDT)
Received: by sandelman.ca (Postfix, from userid 179) id BC13AA9028; Wed, 19 Jun 2013 10:29:23 -0400 (EDT)
Received: from sandelman.ca (localhost [127.0.0.1]) by sandelman.ca (Postfix) with ESMTP id A5D62B9081; Wed, 19 Jun 2013 10:29:23 -0400 (EDT)
From: Michael Richardson <mcr+ietf@sandelman.ca>
To: Ole Laursen <olau@iola.dk>
In-Reply-To: <CANb2OvJtgFRZ8SniSQbOfQVVP3Tk3vUT7fYoTdd8CZfONOSC-w@mail.gmail.com>
References: <21266.1371520672@sandelman.ca> <CANb2OvJS5dpZ4HZ6T=i3-9Mj1Zn0f9LzH7Qhj2hffzoxKSc5PQ@mail.gmail.com> <E0CDAB4E-A9D2-4174-B54F-DD5E08CCF0A7@bangj.com> <CANb2OvJtgFRZ8SniSQbOfQVVP3Tk3vUT7fYoTdd8CZfONOSC-w@mail.gmail.com>
X-Mailer: MH-E 8.2; nmh 1.3-dev; GNU Emacs 23.4.1
X-Face: $\n1pF)h^`}$H>Hk{L"x@)JS7<%Az}5RyS@k9X%29-lHB$Ti.V>2bi.~ehC0; <'$9xN5Ub# z!G,p`nR&p7Fz@^UXIn156S8.~^@MJ*mMsD7=QFeq%AL4m<nPbLgmtKK-5dC@#:k
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg="pgp-sha1"; protocol="application/pgp-signature"
Date: Wed, 19 Jun 2013 10:29:23 -0400
Message-ID: <3320.1371652163@sandelman.ca>
Sender: mcr@sandelman.ca
Cc: Tools Team Discussion <tools-discuss@ietf.org>
Subject: Re: [Tools-discuss] RESTful API style guide
X-BeenThere: tools-discuss@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: IETF Tools Discussion <tools-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tools-discuss>
List-Post: <mailto:tools-discuss@ietf.org>
List-Help: <mailto:tools-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-discuss>, <mailto:tools-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 19 Jun 2013 14:30:29 -0000

Ole Laursen <olau@iola.dk> wrote:
    ole> I think it's better to provide and consume a batch API that allows
    ole> one to do a simple search, e.g. by encoding the search with a
    ole> flexible GET parameter scheme rather than in the (unflexible) path
    ole> of the URL. This is where many "REST" frameworks go wrong IMHO - how
    ole> can you do cool things if you start off in a straitjacket? Of
    ole> course, YMMV.

The list and contents of groups do not change often, they ought to be very
cachable.   If django supported page caching the way rails does, it could
be page cached, and therefore served by the apache in front.

A search parameter in a GET requires active work to process and reply, and is
uncachable.  Basically you are arguing for:
        http://foo/groups?name
vs
        http://foo/groups/name

--
]               Never tell me the odds!                 | ipv6 mesh networks [
]   Michael Richardson, Sandelman Software Works        | network architect  [
]     mcr@sandelman.ca  http://www.sandelman.ca/        |   ruby on rails    [



--
Michael Richardson <mcr+IETF@sandelman.ca>, Sandelman Software Works