couchdb-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Couchdb Wiki] Update of "ApiDocumentHttp" by BenoitC
Date Sun, 29 Jun 2008 16:40:25 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The following page has been changed by BenoitC:
http://wiki.apache.org/couchdb/ApiDocumentHttp

------------------------------------------------------------------------------
  
    Q: Quelle est la règle pour une id document valide ? L'exemple suggère-t-il que cela
soit restreint à ''[a-zA-Z0-9_]'' ? Quid des caractères UTF8 multi-octets ? Des caractères
non alphanumériques tel que ''_'' ?
  
-   R: Il n'y a pour l'instant pas de restriction sur les ids de documents au niveau base
de donnée. Cependant je n'ai pas testé ce qui arrive quand on utilise des caractères multi-octets
dans l'URL. Cela peut fonctionner, mais plus probablement il sera nécessaire de coder ou
échaper les caractères quelques part. Pour l'instant je me cantonne aux caractères valides
dans une URI et rien de "spécial".
+   R: Il n'y a pour l'instant pas de restriction sur les ids de documents au niveau base
de donnée. Cependant je n'ai pas testé ce qui arrive quand on utilise des caractères multi-octets
dans l'URL. Cela peut fonctionner, mais plus probablement il sera nécessaire de coder ou
échapper les caractères quelques part. Pour l'instant je me cantonne aux caractères valides
dans une URI et rien de "spécial".
  
    Les noms de bases de données ont des restrictions strictes afin de simpilfier l'association
nom-fichier. Comme les bases de données peuvent être repliquées à travers différents
systèmes d'exploitation, la façon de nommer les fichiers doit utiliser le plus petit commun
dénominateur.
  
  == JSON ==
  
- Un document CouchDB est un simple objet JSON. (Accompagnées des informations de réfision
si ''?full=true'' dans les arguments de l'URL.
+ Un document CouchDB est un simple objet JSON. (Accompagnées des informations de révision
si ''?full=true'' dans les arguments de l'URL.
  
  Voici un exemple de document :
  
@@ -60, +60 @@

  }
  }}}
  
- Attention, par défaut la structure est ç plat; dans ce cas l'attribut ''Activities'' est
une structure donnée par l'utilisateur.
+ Attention, par défaut la structure est à plat; dans ce cas l'attribut ''Activities'' est
une structure donnée par l'utilisateur.
  
  == Tous les documents  ==
  
@@ -108, +108 @@

  }
  }}}
  
- The query string parameters ''startkey'' and ''count'' may also be used to limit the result
set. For example:
+ Les options ''startkey'' et ''count'' peuvent en outre être utilisées pour limiter le
nombre de résultats obtenus :
  
  {{{
  GET somedatabase/_all_docs?startkey=doc2&count=2 HTTP/1.0
  Date: Thu, 17 Aug 2006 05:39:28 +0000GMT
  }}}
  
- Will return:
+ Qui retourne :
  
  {{{
  HTTP/1.1 200 OK
@@ -131, +131 @@

  }
  }}}
  
- And combined with ''descending'':
+ Combiné avec ''descending'' :
  
  {{{
  GET somedatabase/_all_docs?startkey=doc2&count=2&descending=true HTTP/1.0
  Date: Thu, 17 Aug 2006 05:39:28 +0000GMT
  }}}
  
- Will return:
+ Retourne :
  
  {{{
  HTTP/1.1 200 OK
@@ -154, +154 @@

  }
  }}}
  
- == Working With Documents Over HTTP ==
+ == Travailler sur les documents en HTTP ==
  
  === GET ===
  
- To retrieve a document, simply perform a ''GET'' operation at the document's URL:
+ Pour récupérer un document, envoyez simplement un ''GET'' sur l'URL du document :
  
  {{{
  GET /somedatabase/some_doc_id HTTP/1.0
  Date: Thu, 17 Aug 2006 05:39:28 +0000GMT
  }}}
  
- Here is the server's response:
+ Voici la réponse du serveur :
  
  {{{
  HTTP/1.1 200 OK
@@ -184, +184 @@

  }
  }}}
  
- === Accessing Previous Revisions ===
+ === Accéder aux révisions précedentes ===
  
- See ["DocumentRevisions"] for additional notes on revisions.
+ Voir ["RevisionsDeDocuments"] pour plus d'information sur les révisions.
  
- The above example gets the current revision. You can get a specific revision by using the
following syntax:
+ L'exemple ci-dessus récupère la révisions en cours. Vous pouvez récupérer une révision
particulière avec la syntaxe suivante :
  
  {{{
  GET /somedatabase/some_doc_id?rev=946B7D1C HTTP/1.0
  Date: Thu, 17 Aug 2006 05:39:28 +0000GMT
  }}}
  
- To find out what revisions are available for a document, you can do:
+ Pour obtenir la liste des révisions disponibles d'un document, vous pouvez faire :
  
  {{{
  GET /somedatabase/some_doc_id?revs=true HTTP/1.0
  Date: Thu, 17 Aug 2006 05:39:28 +0000GMT
  }}}
  
- This returns the current revision of the document, but with an additional field, ''_revs'',
the value being a list of the available revision IDs. Note though that not every of those
revisions of the document is necessarily still stored on disk. For example, the content of
an old revision may get removed by compacting the database, or it may only exist in a different
database if it was replicated.
+ Cela retourne la dernière révisions du document mais avec le champ ''_revs'', la valeur
devient une liste de toutes les IDs révison disponibles. Attention toutes les révisons ne
sont pas forcemment encore stockées sur le disque. Par exemple, une ancienne révision a
pu être supprimée lors du compactage de la base, ou peu exister seulement dans une base
différente si celle-ci a été répliquée.
  
- To get more detailed information about the available document revisions, use the ''revs_info''
parameter instead. In this case, the JSON result will contain a ''_revs_info'' property, which
is an array of objects, for example:
+ Pour obtenir plus d'informations sur les révisiosn d'un document disponibles, utilisez
le paramètre ''revs_info'' à la place. Dans ce cas le résultat JSON contiendra une propriété
''revs_info'' qui est un tableau d'objets :
  
  {{{
  {
@@ -216, +216 @@

  }
  }}}
  
- Here, ''disk'' means the revision content is stored on disk and can still be retrieved.
The other values indicate that the content of that revision is not available.
+ Ici ''disk'' signifie que la révision est enregistrée sur le disque et peut encore être
recupérée. Les autres valeurs indiquent que le contenu de la révision n'est plus disponible.
  
  === PUT ===
  
- To create new document you can either use a ''POST'' operation or a ''PUT'' operation. To
create/update a named document using the PUT operation, the URL must point to the document's
location.
+ Pour créer un nouveau document vous pouvez soit envoyer une requête ''POST'', soit une
requête ''PUT''. Pour créer/mettre à jour un document nommé, uttilisez PUT, l'URL doit
pointer ver l'emplacement du document. 
  
- The following is an example HTTP ''PUT''. It will cause the CouchDB server to generate a
new revision ID and save the document with it.
+ L'exemple suivant est une requête HTTP ''PUT''. CouchDB va créer une nouvelle ID révision
et sauver le document avec.
  
  {{{
  PUT /somedatabase/some_doc_id HTTP/1.0
@@ -239, +239 @@

  }
  }}}
  
- Here is the server's response.
+ Voici la réponse du serveur.
  
  {{{
  HTTP/1.1 201 OK
@@ -250, +250 @@

  {"ok": true, "id": "some_doc_id", "rev": "946B7D1C"}
  }}}
  
- To update an existing document, you also issue a ''PUT'' request. In this case, the JSON
body must contain a ''_rev'' property, which lets CouchDB know which revision the edits are
based on. If the revision of the document currently stored in the database doesn't match,
then a ''409'' conflict error is returned.
+ Pour mettre à jour un document existant, vous pouvez aussi envoyer une requête ''PUT''.
Dans ce cas l'objet JSON doit contenir une propriété ''_rev'' qui permet à CouchDB de connaître
sur quelle révison la modification est basée. Si la dernière révison du document qui est
stockée, ne correspond pas, une erreur de conflit ''409'' est renvoyée.
  
- If the revision number does match what's in the database, a new revision number is generated
and returned to the client.
+ Si le numéro de révision correspond à ce qui est dans la base, un nouveau numéro de
révision est généré et renvoyé au client.
  
- For example:
+ Par exemple :
  
  {{{
  PUT /somedatabase/some_doc_id HTTP/1.0
@@ -273, +273 @@

  }
  }}}
  
- Here is the server's response if what is stored in the database is revision ''946B7D1C''
of document ''some_doc_id''.
+ Ici la réponse du serveur si la révision courante du document ''some_doc_id'' enregistrée
dans la base est ''946B7D1C''.
  
  {{{
  HTTP/1.1 201 OK
@@ -284, +284 @@

  {"ok":true, "id":"some_doc_id", "rev":"946B7D1C"}
  }}}
  
- And here is the server's response if there is an update conflict (what is currently stored
in the database is not revision ''946B7D1C'' of document ''some_doc_id'').
+ Ici la réponse du serveur, si la mise à jour crée un conflit (si la révision courante
du document ''some_doc_id'' stockée dans la base est ''946B7D1C'').
+ 
  
  {{{
  HTTP/1.1 409 CONFLICT
@@ -297, +298 @@

  
  === POST ===
  
- The ''POST'' operation can be used to create a new document with a server generated DocID.
To create a named document, use the ''PUT'' method instead.
+ La requête ''POST'' peut être utilisée pour créer un document dont l'ID est génerée
par le serveur. Pour créer un document nommé, utilisez à la place la méthode ''PUT''.
  
- The following is an example HTTP ''POST''. It will cause the CouchDB server to generate
a new DocID and revision ID and save the document with it.
+ L'exemple suivant est une requête ''POST''. Le serveur COUCHDB va générer un nouveau
DocID et une ID révision et enregistrer le document avec.
  
  {{{
  POST /somedatabase/ HTTP/1.0
@@ -316, +317 @@

  }
  }}}
  
- Here is the server's response:
+ La réponse du serveur :
  
  {{{
  HTTP/1.1 201 Created
@@ -327, +328 @@

  {"ok":true, "id":"123BAC", "rev":"946B7D1C"}
  }}}
  
- === Modify Multiple Documents With a Single Request ===
+ === Modifiez plusieurs documents en une seule requête ===
  
- CouchDB provides a bulk insert/update feature. To use this, you make a ''POST'' request
to the URI ''/{dbname}/_bulk_docs'', with the request body being a JSON document containing
a list of new documents to be inserted or updated.  The actual format of the request/result
documents differ between CouchDB 0.7.2 and 0.7.3(svn).
+ CouchDB propose une fonctionnalité d'insertion/mise à jour en masse. Pour l'utilisez envoyez
une requete ''POST'' à l'URI ''/{dbname}/_bulk_docs'', avec un document JSON contenant la
liste de tous les documents à insérer ou mettre à jour. Le format actuel de la requête
et de la réponse diffèrent entre CouchdDB 0.7.2 et 0.8.9-incubating (ou le trunk).
  
  '''CouchDB 0.7.2''':
  
@@ -341, +342 @@

  ]
  }}}
  
- '''CouchDB 0.7.3(svn)''':
+ '''CouchDB 0.8.0-incubation (et trunk)''':
  
  {{{
  {
@@ -353, +354 @@

  }
  }}}
  
- If you omit the per-document ''_id'' specification, CouchDB will generate unique IDs for
you, as it does for regular ''POST'' requests to the database URI.
+ Si vous omettez le paramètre ''_id'', CouchdBD va génerer des IDs uniques pour vous comme
il le fait pour une simple requête''POST'' sur l'URI de la base.
  
- The response to such a bulk request would look as follows:
+ La réponse pour une telle requête de masse:
  
  '''CouchDB 0.7.2''':
  
@@ -370, +371 @@

  }
  }}}
  
- '''CouchDB 0.7.3(svn)''':
+ '''CouchDB 0.8.0-incubating (et trunk)''':
  
  {{{
  {
@@ -383, +384 @@

  }
  }}}
  
- Updating existing documents requires setting the ''_rev'' member to the revision being updated.
To delete a document set the ''_deleted'' member to true. '''CouchDB 0.7.3(svn)''':
+ La mise à jour de documents existants requière le membre ''_rev'' de la révison à mettre
à jour. Pour effacer un document mettez ''_deleted'' à true. '''CouchDB 0.8.0-incubating
(ou trunk)''':
  
  {{{
  {
@@ -395, +396 @@

  }
  }}}
  
- Note that CouchDB will return in the response an id and revision for every document passed
as content to a bulk insert, even for those that were just deleted.
+ Attention, CouchDB retourne une réponse avec l'id et la révision de chaque document passé
dans l'insertion/mise à jour en masse, même si ceux-ci viennent d'être supprimés.
  
  === DELETE ===
  
- To delete a document, perform a ''DELETE'' operation at the document's location, passing
the ''rev'' parameter with the document's current revision. If successful, it will return
the revision id for the deletion stub.
+ Pour supprimer un document, envoyez une requête ''DELETE'' sur l'URL du document avec le
paramètre ''rev'' de la révison courante du document. Si celle-ci réussit, l'ID de la révison
correspondant à la suppression est renvoyée.
+ 
  
  {{{
  DELETE /somedatabase/some_doc?rev=1582603387 HTTP/1.0
  Date: Thu, 17 Aug 2006 05:39:28 +0000GMT
  }}}
  
- And the response:
+ Réponse:
  
  {{{
  HTTP/1.1 202 OK
@@ -417, +419 @@

  {"ok":true,"rev":"2839830636"}
  }}}
  
- == Attachments ==
+ == Attachements ==
  
- Documents can have attachments just like email. On creation, attachments go into a special
''_attachments'' attribute of the document. They are encoded in a JSON structure that holds
the name, the content_type and the base64 encoded data of an attachment. A document can have
any number of attachments.
+ Les documents peuvent avoir des attachements comme les emails. À la création, les attachements
vont dans un attribut du document spécial ''_attachments''. Ils correspondent à une structure
JSON qui contient le nom, le content_type et la donnée codée en base64 de l'attachement.
Un document peut avoir n'importe quel nombre d'attachements.
  
- When retrieving documents, the attachment's actual data is not included, only the metadata.
The actual data has to be fetched separately, using a special URI.
+ Lorsque vous récupérez les documents, seles les métadonnées de l'attachement sont incluses,
pas le contenu. Il doit être téléchargé à part en utilisant une URI spéciale.
  
- Creating a document with an attachment:
+ Création d'un document avec un attachement :
  
  {{{
  {
@@ -439, +441 @@

  }
  }}}
  
- Please note that any base64 data you send has to be on '''a single line of characters''',
so pre-process your data to remove any carriage returns and newlines.
+ Attention les données base64 envoyées doivent être sur ''une seule ligne'', donc préparez
vos données en supprimant tous retours à la ligne et nouvelles lignes.
  
- Requesting said document:
+ Récupérer le document :
  
  {{{
  GET /database/attachment_doc
  }}}
  
- CouchDB replies:
+ CouchDB répond:
  
  {{{
  {
@@ -465, +467 @@

  }
  }}}
  
- Note that the ''"stub":true'' attribute denotes that this is not the complete attachment.
Also, note the length attribute added automatically.
+ Notez l'attribut ''"stub":true'' qqui montre que ce n'est pas un attachement complet. Notez
aussi la taille de l'atttribut ajoutée automatiquement.
  
- Requesting the attachment:
+ Récupérez l'attachement :
  
  {{{
  GET /database/attachment_doc/foo.txt
  }}}
  
- CouchDB returns:
+ CouchDB retoune
  
  {{{
  This is a base64 encoded text
  }}}
  
- Automatically decoded!
+ Automatiquement décodé!
  
- === Multiple Attachments ===
+ === Plusieurs Attachments ===
+ Créer un document avec un attachement:
- 
- Creating a document with an attachment:
  
  {{{
  {
@@ -505, +506 @@

  }
  }}}
  
- == ETags/Caching ==
+ == ETags/Cache ==
  
- CouchDB sends an ''ETag'' Header for document requests. The ETag Header is simply the document's
revision.
+ CouchDB envoie un entête ''ETag'' à chaque requête de document. L'entête Etag est simpelement
une révison de document.
  
- For example, a ''GET'' request:
+ Par exemple pour une requête ''GET'':
  
  {{{
  GET /database/123182719287
  }}}
  
- Results in a reply with the following headers:
+ Résultats en réponse aux headers suivant :
  
  {{{
  cache-control: no-cache,
@@ -526, +527 @@

  etag: 615790463
  }}}
  
- ''POST'' requests also return an ''ETag'' header for either newly created or updated documents.
+ les requêtes ''POST'' retournent aussi un entête ''ETag'' pour les nouveaux documents
crées ou les mises à jour de documents.
  

Mime
View raw message