[{"data":1,"prerenderedAt":702},["ShallowReactive",2],{"\u002Fnext\u002Fdodock\u002Fdeveloppeurs\u002Fapi\u002Fmethodes_http_query":3,"section:\u002Fnext\u002Fdodock\u002Fdeveloppeurs\u002Fapi\u002Fmethodes_http_query":701},{"id":4,"title":5,"body":6,"description":685,"extension":686,"meta":687,"navigation":307,"path":697,"seo":698,"stem":699,"__hash__":700},"docs\u002F2.next\u002F3.dodock\u002F10.developpeurs\u002F1.api\u002Fmethodes_http_query.md","Méthode HTTP QUERY",{"type":7,"value":8,"toc":676},"minimark",[9,13,39,44,89,93,179,183,212,265,269,276,325,328,483,493,562,566,618,622,654,658,672],[10,11,5],"h1",{"id":12},"méthode-http-query",[14,15,16,17,21,22,26,27,30,31,38],"p",{},"Dans la version next, Dodock accepte la méthode HTTP ",[18,19,20],"strong",{},"QUERY",". Comme ",[23,24,25],"code",{},"GET",", elle lit des données sans les modifier. Comme ",[23,28,29],{},"POST",", elle porte ses paramètres dans le corps de la requête. Utilisez-la pour des filtres longs ou structurés, qui dépassent la taille d'une URL. La méthode est définie par la ",[32,33,37],"a",{"href":34,"rel":35},"https:\u002F\u002Fwww.rfc-editor.org\u002Finfo\u002Frfc10008",[36],"nofollow","RFC 10008, « The HTTP QUERY Method »"," de l'IETF.",[40,41,43],"h2",{"id":42},"comportement","Comportement",[45,46,47,68,77],"ul",{},[48,49,50,53,54,56,57,59,60,63,64,67],"li",{},[18,51,52],{},"Méthode sûre"," : Dodock classe ",[23,55,20],{}," avec ",[23,58,25],{},", ",[23,61,62],{},"HEAD"," et ",[23,65,66],{},"OPTIONS",". Il ne valide pas la transaction à la fin de la requête : toute écriture en base est annulée.",[48,69,70,73,74,76],{},[18,71,72],{},"Pas de contrôle CSRF"," : comme pour ",[23,75,25],{},", Dodock ne demande pas de jeton CSRF.",[48,78,79,82,83,85,86,88],{},[18,80,81],{},"Autorisations"," : les règles sont les mêmes que pour ",[23,84,25],{},". Sur un document, ",[23,87,20],{}," demande le droit de lecture.",[40,90,92],{"id":91},"points-daccès-qui-acceptent-query","Points d'accès qui acceptent QUERY",[94,95,96,109],"table",{},[97,98,99],"thead",{},[100,101,102,106],"tr",{},[103,104,105],"th",{},"API",[103,107,108],{},"Chemin",[110,111,112,123,133,142,152,161,170],"tbody",{},[100,113,114,118],{},[115,116,117],"td",{},"v1",[115,119,120],{},[23,121,122],{},"\u002Fapi\u002Fmethod\u002F\u003Cméthode>",[100,124,125,127],{},[115,126,117],{},[115,128,129,132],{},[23,130,131],{},"\u002Fapi\u002Fresource\u002F\u003Cdoctype>"," (liste)",[100,134,135,137],{},[115,136,117],{},[115,138,139],{},[23,140,141],{},"\u002Fapi\u002Fresource\u002F\u003Cdoctype>\u002F\u003Cname>?run_method=\u003Cméthode>",[100,143,144,147],{},[115,145,146],{},"v2",[115,148,149],{},[23,150,151],{},"\u002Fapi\u002Fv2\u002Fmethod\u002F\u003Cméthode>",[100,153,154,156],{},[115,155,146],{},[115,157,158,132],{},[23,159,160],{},"\u002Fapi\u002Fv2\u002Fdocument\u002F\u003Cdoctype>",[100,162,163,165],{},[115,164,146],{},[115,166,167],{},[23,168,169],{},"\u002Fapi\u002Fv2\u002Fdocument\u002F\u003Cdoctype>\u002F\u003Cname>\u002Fmethod\u002F\u003Cméthode>",[100,171,172,174],{},[115,173,146],{},[115,175,176],{},[23,177,178],{},"\u002Fapi\u002Fv2\u002Fdoctype\u002F\u003Cdoctype>\u002Fcount",[40,180,182],{"id":181},"méthodes-whitelistées","Méthodes whitelistées",[14,184,185,188,189,192,193,59,195,59,197,59,200,63,203,205,206,208,209,211],{},[23,186,187],{},"@frappe.whitelist()"," sans argument ",[23,190,191],{},"methods"," accepte ",[23,194,25],{},[23,196,29],{},[23,198,199],{},"PUT",[23,201,202],{},"DELETE",[23,204,20],{},". Si vous limitez les méthodes et que la liste contient ",[23,207,25],{},", Dodock ajoute ",[23,210,20],{},".",[213,214,219],"pre",{"className":215,"code":216,"language":217,"meta":218,"style":218},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","@frappe.whitelist(methods=[\"GET\"])  # accepte aussi QUERY\ndef clients_par_territoire(territory: str):\n    return frappe.get_list(\n        \"Customer\",\n        filters={\"territory\": territory},\n        fields=[\"name\", \"customer_name\", \"territory\"],\n    )\n","python","",[23,220,221,229,235,241,247,253,259],{"__ignoreMap":218},[222,223,226],"span",{"class":224,"line":225},"line",1,[222,227,228],{},"@frappe.whitelist(methods=[\"GET\"])  # accepte aussi QUERY\n",[222,230,232],{"class":224,"line":231},2,[222,233,234],{},"def clients_par_territoire(territory: str):\n",[222,236,238],{"class":224,"line":237},3,[222,239,240],{},"    return frappe.get_list(\n",[222,242,244],{"class":224,"line":243},4,[222,245,246],{},"        \"Customer\",\n",[222,248,250],{"class":224,"line":249},5,[222,251,252],{},"        filters={\"territory\": territory},\n",[222,254,256],{"class":224,"line":255},6,[222,257,258],{},"        fields=[\"name\", \"customer_name\", \"territory\"],\n",[222,260,262],{"class":224,"line":261},7,[222,263,264],{},"    )\n",[40,266,268],{"id":267},"exemple","Exemple",[14,270,271,272,275],{},"Si la fonction ci-dessus est dans ",[23,273,274],{},"mon_app\u002Fapi.py"," :",[213,277,281],{"className":278,"code":279,"language":280,"meta":218,"style":218},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","QUERY \u002Fapi\u002Fmethod\u002Fmon_app.api.clients_par_territoire HTTP\u002F1.1\nHost: votre-site.dokos.cloud\nAuthorization: token \u003Capi_key>:\u003Capi_secret>\nContent-Type: application\u002Fjson\n\n{\n    \"territory\": \"France\"\n}\n","http",[23,282,283,288,293,298,303,309,314,319],{"__ignoreMap":218},[222,284,285],{"class":224,"line":225},[222,286,287],{},"QUERY \u002Fapi\u002Fmethod\u002Fmon_app.api.clients_par_territoire HTTP\u002F1.1\n",[222,289,290],{"class":224,"line":231},[222,291,292],{},"Host: votre-site.dokos.cloud\n",[222,294,295],{"class":224,"line":237},[222,296,297],{},"Authorization: token \u003Capi_key>:\u003Capi_secret>\n",[222,299,300],{"class":224,"line":243},[222,301,302],{},"Content-Type: application\u002Fjson\n",[222,304,305],{"class":224,"line":249},[222,306,308],{"emptyLinePlaceholder":307},true,"\n",[222,310,311],{"class":224,"line":255},[222,312,313],{},"{\n",[222,315,316],{"class":224,"line":261},[222,317,318],{},"    \"territory\": \"France\"\n",[222,320,322],{"class":224,"line":321},8,[222,323,324],{},"}\n",[14,326,327],{},"Réponse (clients fictifs) :",[213,329,333],{"className":330,"code":331,"language":332,"meta":218,"style":218},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n    \"message\": [\n        {\"name\": \"Maison Verte SARL\", \"customer_name\": \"Maison Verte SARL\", \"territory\": \"France\"},\n        {\"name\": \"Bureau Moderne\", \"customer_name\": \"Bureau Moderne\", \"territory\": \"France\"}\n    ]\n}\n","json",[23,334,335,340,358,421,474,479],{"__ignoreMap":218},[222,336,337],{"class":224,"line":225},[222,338,313],{"class":339},"sMK4o",[222,341,342,345,349,352,355],{"class":224,"line":231},[222,343,344],{"class":339},"    \"",[222,346,348],{"class":347},"spNyl","message",[222,350,351],{"class":339},"\"",[222,353,354],{"class":339},":",[222,356,357],{"class":339}," [\n",[222,359,360,363,365,369,371,373,376,380,382,385,387,390,392,394,396,398,400,402,404,407,409,411,413,416,418],{"class":224,"line":237},[222,361,362],{"class":339},"        {",[222,364,351],{"class":339},[222,366,368],{"class":367},"sBMFI","name",[222,370,351],{"class":339},[222,372,354],{"class":339},[222,374,375],{"class":339}," \"",[222,377,379],{"class":378},"sfazB","Maison Verte SARL",[222,381,351],{"class":339},[222,383,384],{"class":339},",",[222,386,375],{"class":339},[222,388,389],{"class":367},"customer_name",[222,391,351],{"class":339},[222,393,354],{"class":339},[222,395,375],{"class":339},[222,397,379],{"class":378},[222,399,351],{"class":339},[222,401,384],{"class":339},[222,403,375],{"class":339},[222,405,406],{"class":367},"territory",[222,408,351],{"class":339},[222,410,354],{"class":339},[222,412,375],{"class":339},[222,414,415],{"class":378},"France",[222,417,351],{"class":339},[222,419,420],{"class":339},"},\n",[222,422,423,425,427,429,431,433,435,438,440,442,444,446,448,450,452,454,456,458,460,462,464,466,468,470,472],{"class":224,"line":243},[222,424,362],{"class":339},[222,426,351],{"class":339},[222,428,368],{"class":367},[222,430,351],{"class":339},[222,432,354],{"class":339},[222,434,375],{"class":339},[222,436,437],{"class":378},"Bureau Moderne",[222,439,351],{"class":339},[222,441,384],{"class":339},[222,443,375],{"class":339},[222,445,389],{"class":367},[222,447,351],{"class":339},[222,449,354],{"class":339},[222,451,375],{"class":339},[222,453,437],{"class":378},[222,455,351],{"class":339},[222,457,384],{"class":339},[222,459,375],{"class":339},[222,461,406],{"class":367},[222,463,351],{"class":339},[222,465,354],{"class":339},[222,467,375],{"class":339},[222,469,415],{"class":378},[222,471,351],{"class":339},[222,473,324],{"class":339},[222,475,476],{"class":224,"line":249},[222,477,478],{"class":339},"    ]\n",[222,480,481],{"class":224,"line":255},[222,482,324],{"class":339},[14,484,485,486,489,490,275],{},"Avec ",[23,487,488],{},"curl",", utilisez ",[23,491,492],{},"-X QUERY",[213,494,498],{"className":495,"code":496,"language":497,"meta":218,"style":218},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -X QUERY \"https:\u002F\u002Fvotre-site.dokos.cloud\u002Fapi\u002Fv2\u002Fdocument\u002FCustomer\" \\\n  -H \"Authorization: token \u003Capi_key>:\u003Capi_secret>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"filters\": {\"territory\": \"France\"}, \"fields\": [\"name\", \"customer_name\"]}'\n","bash",[23,499,500,521,535,548],{"__ignoreMap":218},[222,501,502,504,507,510,512,515,517],{"class":224,"line":225},[222,503,488],{"class":367},[222,505,506],{"class":378}," -X",[222,508,509],{"class":378}," QUERY",[222,511,375],{"class":339},[222,513,514],{"class":378},"https:\u002F\u002Fvotre-site.dokos.cloud\u002Fapi\u002Fv2\u002Fdocument\u002FCustomer",[222,516,351],{"class":339},[222,518,520],{"class":519},"sTEyZ"," \\\n",[222,522,523,526,528,531,533],{"class":224,"line":231},[222,524,525],{"class":378},"  -H",[222,527,375],{"class":339},[222,529,530],{"class":378},"Authorization: token \u003Capi_key>:\u003Capi_secret>",[222,532,351],{"class":339},[222,534,520],{"class":519},[222,536,537,539,541,544,546],{"class":224,"line":237},[222,538,525],{"class":378},[222,540,375],{"class":339},[222,542,543],{"class":378},"Content-Type: application\u002Fjson",[222,545,351],{"class":339},[222,547,520],{"class":519},[222,549,550,553,556,559],{"class":224,"line":243},[222,551,552],{"class":378},"  -d",[222,554,555],{"class":339}," '",[222,557,558],{"class":378},"{\"filters\": {\"territory\": \"France\"}, \"fields\": [\"name\", \"customer_name\"]}",[222,560,561],{"class":339},"'\n",[40,563,565],{"id":564},"comparaison-avec-get-et-post","Comparaison avec GET et POST",[94,567,568,581],{},[97,569,570],{},[100,571,572,575,577,579],{},[103,573,574],{},"Caractéristique",[103,576,25],{},[103,578,29],{},[103,580,20],{},[110,582,583,596,607],{},[100,584,585,588,591,594],{},[115,586,587],{},"Corps de requête",[115,589,590],{},"Non",[115,592,593],{},"Oui",[115,595,593],{},[100,597,598,601,603,605],{},[115,599,600],{},"Écritures en base validées",[115,602,590],{},[115,604,593],{},[115,606,590],{},[100,608,609,612,614,616],{},[115,610,611],{},"Contrôle CSRF",[115,613,590],{},[115,615,593],{},[115,617,590],{},[40,619,621],{"id":620},"limites","Limites",[45,623,624,630,641],{},[48,625,626,627,629],{},"Certains clients HTTP, proxys et pare-feu ne connaissent pas la méthode ",[23,628,20],{},". Testez votre chaîne complète avant de l'utiliser en production.",[48,631,632,634,635,637,638,211],{},[23,633,20],{}," ne sert pas à envoyer des fichiers. Utilisez ",[23,636,29],{}," sur ",[23,639,640],{},"\u002Fapi\u002Fmethod\u002Fupload_file",[48,642,643,644,59,646,59,648,651,652,211],{},"Pour modifier des données, utilisez ",[23,645,29],{},[23,647,199],{},[23,649,650],{},"PATCH"," ou ",[23,653,202],{},[40,655,657],{"id":656},"voir-aussi","Voir aussi",[45,659,660,666],{},[48,661,662],{},[32,663,665],{"href":664},"\u002Fnext\u002Fdodock\u002Fdeveloppeurs\u002Fapi\u002Frest_api","API Rest",[48,667,668],{},[32,669,671],{"href":670},"\u002Fnext\u002Fdodock\u002Fdeveloppeurs\u002Fapi\u002Frest-api-v2","API REST v2",[673,674,675],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":218,"searchDepth":225,"depth":231,"links":677},[678,679,680,681,682,683,684],{"id":42,"depth":231,"text":43},{"id":91,"depth":231,"text":92},{"id":181,"depth":231,"text":182},{"id":267,"depth":231,"text":268},{"id":564,"depth":231,"text":565},{"id":620,"depth":231,"text":621},{"id":656,"depth":231,"text":657},"Utiliser la méthode HTTP QUERY pour des requêtes sécurisées avec corps de requête dans Dokos","md",{"icon":688,"order":243,"badge":689,"reviewed":307,"last_verified":690,"sources":691},"i-mdi-api","développeur","2026-11-04",[692,693,694,695,696],"dodock@develop:frappe\u002F__init__.py","dodock@develop:frappe\u002Fauth.py","dodock@develop:frappe\u002Fapp.py","dodock@develop:frappe\u002Fapi\u002Fv1.py","dodock@develop:frappe\u002Fapi\u002Fv2.py","\u002Fnext\u002Fdodock\u002Fdeveloppeurs\u002Fapi\u002Fmethodes_http_query",{"title":5,"description":685},"2.next\u002F3.dodock\u002F10.developpeurs\u002F1.api\u002Fmethodes_http_query","xzPePdaKNpAnwuIB2c4kwKed-_YXvUBMahlO6HvKp8c",{},1793871731718]