proposition pour une nouvelle fonction dans la classe nklAPI_Collections
voici une proposition de fonction pour le fichier nklAPI_Collections.py
def search_collections( nklTarget, identifier, scope, order="desc", page="1", size="100" ): """ Récupération des informations sur une collection. Retourne l'ensemble des informations relatives à la collection
Parameters
nklTarget : OBJ
une instance d'un objet NklTarget permettant de choisir nakala_prod ou nakala_test
scope : STR
filtres pour la requête (scope=data ou scope=collection;status=public;year=2009,1889)
identifier : STR
un COLLECTION identifier nakala.
order : STR
filtres pour l'odre des réponses (order=date,asc ou order=title,desc)
page : INT
La page souhaitée
limit : INT
Le nombre de résultat par page
Returns
-------
NklResponse : OBJ
une instance d'un objet NklResponse
- en cas de problème reseau ou de message d'erreur du serveur nakala
l'objet NklResponse.isSuccess=False et le détails de l'erreur en version textuel
sera dans NklResponse.message
- en cas de réussite de la requete
l'objet NklResponse.isSuccess=True et
les métadonnées reçu seront dans
NklResponse.dictVals : un dictionnaire contenant les metacollections obtenus depuis la reponse json du server
"""
# url = nklTarget.API_URL+"/search/"+identifier+"/datas?page="+str(page)+"&limit="+str(limit)
url = (
nklTarget.API_URL
+ "/search?fq=scope="
+ str(scope)
+ ";collection="
+ identifier
+ "&order="
+ str(order)
+ "&page="
+ str(page)
+ "&size="
+ str(size)
)
APIheaders = {}
# on gère le cas où la collection est public
# et qu'il n'y a donc pas besoin de API_KEY
if nklTarget.apiKey_isEmpty() == False:
APIheaders = {"X-API-KEY": nklTarget.API_KEY_NKL}
# création d'une instance d'un objet NklResponse à retourner
nklR = NklResponse()
try:
response = requests.get(url, headers=APIheaders)
# on récupère le code
nklR.code = response.status_code
# 200 le serveur a bien répondu
if response.status_code == 200:
nklR.isSuccess = True
nklR.message = "Informations sur la collection"
# on converti l'objet json retournée en dictionnaire python
nklR.dictVals = json.loads(response.text)
# on retourne l'objet NklResponse maintenant entièrement rempli
return nklR
else:
dicError = json.loads(response.text)
nklR.message = dicError["message"]
except requests.exceptions.RequestException as e:
nklR.code = -1
nklR.message = e
# on retourne l'objet NklResponse avec erreur (de nakala ou de connexion reseau)
return nklR