Lecture d'un document
Les étapes présentées ici montrent comment lire un document :
-
Envoyez une demande
GETpour extraire un document. -
Exécutez la commande suivante :
https://$ACCOUNT.cloudant.com/$DATABASE/$DOCUMENT_ID.
N'oubliez pas que pour une base de données partitionnée, $DOCUMENT_ID est composé d'une partie clé de partitionnement et d'une partie clé de document.
Si vous ne connaissez pas l' _id e d'un document en particulier, vous pouvez interroger la base de données pour obtenir la liste de
tous les documents.
En raison de la nature cohérente à terme distribuée d'IBM Cloudant, il se peut que les lectures renvoient des données périmées. En particulier, les données écrites récemment, même par le même client, peuvent ne pas être renvoyées à partir d'une demande de lecture immédiatement après la demande d'écriture. Pour éviter ce comportement, un client peut mettre en cache l'état des données localement. La mise en cache permet également de conserver un nombre de demandes faibles, d'améliorer les performances des applications et de diminuer la charge dans le cluster de base de données. Ce comportement s'applique aussi à d'autres demandes de lecture, comme MapReduce et les index de recherche.
Voir un exemple d'extraction de document via HTTP :
GET /$DATABASE/$DOCUMENT_ID HTTP/1.1
Vous pouvez personnaliser cette section pour le langage de programmation que vous souhaitez utiliser en sélectionnant le language dans les exemples de code.
Voir un exemple de récupération d'un document :
curl -H "Authorization: Bearer $API_BEARER_TOKEN" -X GET "$SERVICE_URL/products/small-appliances:1000042"
import com.ibm.cloud.cloudant.v1.Cloudant;
import com.ibm.cloud.cloudant.v1.model.Document;
import com.ibm.cloud.cloudant.v1.model.GetDocumentOptions;
Cloudant service = Cloudant.newInstance();
GetDocumentOptions documentOptions =
new GetDocumentOptions.Builder()
.db("products")
.docId("small-appliances:1000042")
.build();
Document response =
service.getDocument(documentOptions).execute()
.getResult();
System.out.println(response);
const { CloudantV1 } = require('@ibm-cloud/cloudant');
const service = CloudantV1.newInstance({});
service.getDocument({
db: 'products',
docId: 'small-appliances:1000042'
}).then(response => {
console.log(response.result);
});
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.get_document(
db='products',
doc_id='small-appliances:1000042'
).get_result()
print(response)
getDocumentOptions := service.NewGetDocumentOptions(
"products",
"small-appliances:1000042",
)
document, response, err := service.GetDocument(getDocumentOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(document, "", " ")
fmt.Println(string(b))
L'exemple précédent de Go requiert le bloc d'importation suivant :
import (
"encoding/json"
"fmt"
"github.com/IBM/cloudant-go-sdk/cloudantv1"
)
Tous les exemples de Go nécessitent l'initialisation de l'objet service. Pour plus d'informations, reportez-vous à la documentation de l'API Section Authentification pour avoir des exemples.
La réponse contient le document que vous avez demandé ou une description de l'erreur si le document ne peut pas être extrait.
Voici un exemple de réponse suite à une demande d'extraction d'un document :
{
"_id": "exampleid",
"brand": "Foo",
"colours": [
"red",
"green",
"black",
"blue"
],
"description": "Slim Colourful Design Electronic Cooking Appliance for ...",
"image": "assets/img/0gmsnghhew.jpg",
"keywords": [
"Foo",
"Scales",
"Weight",
"Digital",
"Kitchen"
],
"name": "Digital Kitchen Scales",
"price": 14.99,
"productid": "1000042",
"taxonomy": [
"Home",
"Kitchen",
"Small Appliances"
],
"type": "product"
}
Paramètres de requête
Vous pouvez ajouter des paramètres de requête à l'URL, par exemple /mydatabase/doc?attachments=true&conflicts=true.
Tous les paramètres sont facultatifs.
| Nom | Type | Description | Valeur par défaut |
|---|---|---|---|
attachments |
Booléen | Inclut des corps de pièce jointe dans la réponse. | Faux |
att_encoding_info |
Booléen | Inclut des informations de codage dans les modules de remplacement de pièce jointe si la pièce jointe spécifique est compressée. | Faux |
atts_since |
Tableau de chaînes de révision | Inclut des pièces jointes uniquement depuis les révisions spécifiées. N'inclut pas les pièces jointes pour les révisions spécifiées. | [] |
conflicts |
Booléen | Inclut des informations sur les conflits dans les documents. | Faux |
deleted_conflicts |
Booléen | Inclut des informations sur les révisions conflictuelles supprimées. | Faux |
latest |
Booléen | Force l'extraction de la révision "feuille" la plus récente, quelle que soit la révision demandée. | Faux |
local_seq |
Booléen | Inclut le numéro de séquence de la dernière mise à jour du document. | Faux |
meta |
Booléen | Identique à la spécification des paramètres de requête conflicts, deleted_conflicts et open_revs. |
Faux |
open_revs |
Tableau ou all |
Extrait des documents des révisions feuilles spécifiées. De plus, admet la valeur all pour le renvoi de toutes les révisions feuilles. |
[] |
rev |
Chaîne | Extrait le document de la révision spécifiée. |
|
revs |
Booléen | Inclut la liste de toutes les révisions de document connues. | Faux |
revs_info |
Booléen | Inclut des informations détaillées pour toutes les révisions de document connues. | Faux |
Lectures multiples
Pour récupérer plusieurs documents à la fois,
interrogez la base de données en utilisant l'option « include_docs ».