{"id":52506,"date":"2019-11-10T00:00:00","date_gmt":"2019-11-09T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/kak-napisat-smart-kontrakt-na-python-v-seti-ontology-chast-1-blockchain-block-api"},"modified":"2020-02-18T14:00:15","modified_gmt":"2020-02-18T11:00:15","slug":"kak-napisat-smart-kontrakt-na-python-v-seti-ontology-chast-1-blockchain-block-api","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/kak-napisat-smart-kontrakt-na-python-v-seti-ontology-chast-1-blockchain-block-api","title":{"rendered":"Comment \u00e9crire un contrat intelligent en Python sur le r\u00e9seau Ontology. Partie 1 : Blockchain &amp; API de blocs","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Comment \u00e9crire un contrat intelligent en Python sur le r\u00e9seau Ontology. Partie 1 : Blockchain &amp; Block API\" src=\"\/wp-content\/uploads\/2019\/11\/4748f7bfd5e6c0b7a17ec511d22313df.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCeci est la premi\u00e8re partie d'une s\u00e9rie d'articles \u00e9ducatifs sur la cr\u00e9ation de contrats intelligents en Python dans le r\u00e9seau blockchain Ontology \u00e0 l'aide d'un outil de d\u00e9veloppement de contrats intelligents. <noindex><a rel=\"nofollow\" href=\"https:\/\/smartx.ont.io\/\">SmartX<\/a><\/noindex>. <\/p>\n<p>Dans cet article, nous commencerons notre introduction \u00e0 l'API des contrats intelligents Ontology. L'API des contrats intelligents Ontology est divis\u00e9e en 7 modules : <\/p>\n<ol>\n<li>API Blockchain &amp; Block, <\/li>\n<li>API Runtime, <\/li>\n<li>API Storage, <\/li>\n<li>API Native, <\/li>\n<li>API Upgrade, <\/li>\n<li>API Execution Engine et <\/li>\n<li>API Static &amp; Dynamic Call.<\/li>\n<\/ol>\n<p>\nL'API Blockchain &amp; Block est la partie principale du syst\u00e8me des contrats intelligents Ontology. L'API Blockchain prend en charge les op\u00e9rations de base des requ\u00eates blockchain, comme par exemple obtenir la hauteur actuelle du bloc, tandis que l'API Block prend en charge les op\u00e9rations de base des requ\u00eates de blocs, par exemple demander le nombre de transactions pour ce bloc.<\/p>\n<p><b>Commen\u00e7ons !<\/b><\/p>\n<p>Tout d'abord, cr\u00e9ez un nouveau contrat dans <noindex><a rel=\"nofollow\" href=\"https:\/\/smartx.ont.io\/#\">SmartX<\/a><\/noindex>, puis suivez les instructions ci-dessous.<br \/>\n <noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>1. Comment utiliser l'API Blockchain<\/h3>\n<p>\nLes appels aux fonctions des contrats intelligents sont identiques aux appels Python. Vous pouvez saisir les fonctions appropri\u00e9es selon vos besoins. Par exemple, l'instruction ci-dessous appelle GetHeight\u2014 une fonction pour obtenir la hauteur actuelle du bloc, et GetHeader\u2014 une fonction pour obtenir l'en-t\u00eate du bloc.<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import GetHeight, GetHeader<\/code><\/pre>\n<p><\/p>\n<h4>GetHeight<\/h4>\n<p>\nGetHeight est utilis\u00e9 pour obtenir le dernier num\u00e9ro de s\u00e9quence du bloc dans la blockchain, comme illustr\u00e9 dans l'exemple ci-dessous. Dans le dernier exemple, pour des raisons de commodit\u00e9, nous omettrons la fonction Main, mais vous pouvez l'ajouter si n\u00e9cessaire.<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Runtime import Notify\nfrom ontology.interop.System.Blockchain import GetHeight\ndef Main(operation):\n    if operation == 'demo':\n        return demo()\n    return False\n\ndef demo():\n    height=GetHeight()\n    Notify(height) # print height\n    return height #return height after running the function<\/code><\/pre>\n<p><\/p>\n<h4>GetHeader<\/h4>\n<p>\nGetHeader est utilis\u00e9 pour obtenir l'en-t\u00eate du bloc, le param\u00e8tre \u00e9tant le num\u00e9ro de s\u00e9quence du bloc dans la blockchain. Exemple :<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Runtime import Notify\nfrom ontology.interop.System.Blockchain import GetHeader\ndef demo():\n    block_height=10\n    header=GetHeader(block_height) \n    Notify(header)\nreturn header<\/code><\/pre>\n<p><\/p>\n<h4>GetTransactionByHash<\/h4>\n<p>\nGetTransactionByHash est utilis\u00e9 pour obtenir une transaction par son hash. Le hash de la transaction est envoy\u00e9 dans <i>GetTransactionByHash <\/i>comme param\u00e8tres au format bytearray. La cl\u00e9 de cette fonction est de convertir le hash de la transaction en format hexad\u00e9cimal en hash de transaction au format bytearray. C'est une \u00e9tape importante. Sinon, vous obtiendrez une erreur indiquant qu'il n'y a pas de bloc avec ce hash de bloc. Prenons un hash de transaction en format hexad\u00e9cimal, par exemple, pour le convertir en format bytearray. L'exemple est le suivant :<\/p>\n<pre><code class=\"python\">9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1<\/code><\/pre>\n<p>\nInversez d'abord le hash de la transaction :<\/p>\n<pre><code class=\"python\">c1890c4d730626dfaa9449419d662505eab3bda2e1f01f89463cc1a4a30a279<\/code><\/pre>\n<p>\nLes d\u00e9veloppeurs peuvent effectuer cette \u00e9tape \u00e0 l'aide de l'outil de conversion Hex Number (little endian) fourni par SmartX.<\/p>\n<p>Ensuite, convertissez le r\u00e9sultat obtenu au format bytearray :<\/p>\n<pre><code class=\"python\">{0xc1,0x89,0x0c,0x4d,0x73,0x06,0x26,0xdf,0xaa,0x94,0x49,0x41,0x9d,0x66,0x25,0x05,0xea,0xb3,0xbd,0xa2,0xe1,0xf0,0x1f,0x89,0x46,0x3c,0xc1,0xa4,0xa3,0x0a,0x27,0x9f}<\/code><\/pre>\n<p>\nCela peut \u00eatre r\u00e9alis\u00e9 \u00e0 l'aide de l'outil de conversion String Byte Array fourni par SmartX. Enfin, convertissez le bytearray obtenu en une cha\u00eene semblable \u00e0 :<\/p>\n<pre><code class=\"python\">xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f<\/code><\/pre>\n<p>\nVoici un exemple de la fonction GetTransactionByHash, qui r\u00e9cup\u00e8re une transaction \u00e0 partir de son hachage :<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import GetTransactionByHash\ndef demo():\n    # tx_hash=\"9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1\"    \n    tx_hash=bytearray(b\"xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f\")\n    tx=GetTransactionByHash(tx_hash)\n    return tx<\/code><\/pre>\n<h4>GetTransactionHeight<\/h4>\n<p>\nGetTransactionHeight est utilis\u00e9 pour obtenir la hauteur d'une transaction \u00e0 partir de son hachage. Prenons le hachage de l'exemple pr\u00e9c\u00e9dent :<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import  GetTransactionHeight\ndef demo():\n    #   tx_hash=\"9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1\"    \n    tx_hash=bytearray(b\"xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f\")\n    height=GetTransactionHeight(tx_hash)\n    return height<\/code><\/pre>\n<p><\/p>\n<h4>GetContract<\/h4>\n<p>\nLes d\u00e9veloppeurs peuvent utiliser la fonction GetContract pour r\u00e9cup\u00e9rer un contrat \u00e0 partir de son hachage. Le processus de conversion du hachage du contrat est similaire \u00e0 celui de la conversion du hachage de la transaction mentionn\u00e9e ci-dessus.<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import GetContract\ndef demo():\n    # contract_hash=\"d81a75a5ff9b95effa91239ff0bb3232219698fa\"    \n    contract_hash=bytearray(b\"xfax98x96x21x32x32xbbxf0x9fx23x91xfaxefx95x9bxffxa5x75x1axd8\")\n    contract=GetContract(contract_hash)\n    return contract<\/code><\/pre>\n<p><\/p>\n<h4>GetBlock<\/h4>\n<p>\nGetBlock est utilis\u00e9 pour r\u00e9cup\u00e9rer un bloc. Il existe deux fa\u00e7ons d'obtenir un bloc sp\u00e9cifique.<\/p>\n<p><b>1. Obtenir un bloc par sa hauteur :<\/b><\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import GetBlock\ndef demo():\n    block=GetBlock(1408)\n    return block<\/code><\/pre>\n<p>\n<b>2. Obtenir un bloc par son hachage :<\/b><\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import GetBlock\ndef demo():    \n    block_hash=bytearray(b'x16xe0xc5x40x82x79x77x30x44xeax66xc8xc4x5dx17xf7x17x73x92x33x6dx54xe3x48x46x0bxc3x2fxe2x15x03xe4')\n    block=GetBlock(block_hash)<\/code><\/pre>\n<p><\/p>\n<h3>2. Comment utiliser l'API Block<\/h3>\n<p>\nIl existe trois fonctions disponibles dans l'API Block : <i>GetTransactions<\/i>, <i>GetTransactionCount<\/i>et <i>GetTransactionByIndex<\/i>. Nous les examinerons une par une.<\/p>\n<h4>GetTransactionCount<\/h4>\n<p>\nGetTransactionCount est utilis\u00e9 pour obtenir le nombre de transactions pour un bloc donn\u00e9.<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import GetBlock\nfrom ontology.interop.System.Block import GetTransactionCount\ndef demo():\n    block=GetBlock(1408)\n    count=GetTransactionCount(block)\n    return count<\/code><\/pre>\n<p><\/p>\n<h3>GetTransactions<\/h3>\n<p>\nLes d\u00e9veloppeurs peuvent utiliser la fonction GetTransactions pour obtenir toutes les transactions dans ce bloc.<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import GetBlock\nfrom ontology.interop.System.Block import GetTransactions \ndef demo():\n    block=GetBlock(1408)\n    txs=GetTransactions(block)\n    return txs<\/code><\/pre>\n<p><\/p>\n<h4>GetTransactionByIndex<\/h4>\n<p>\nGetTransactionByIndex est utilis\u00e9 pour obtenir une transaction sp\u00e9cifique dans ce bloc.<\/p>\n<pre><code class=\"python\">from ontology.interop.System.Blockchain import GetBlock\nfrom ontology.interop.System.Block import GetTransactionByIndex\ndef demo():\n    block=GetBlock(1408)\n    tx=GetTransactionByIndex(block,0) # l'index commence \u00e0 0.\n    return tx<\/code><\/pre>\n<p>\nLe guide complet se trouve sur notre <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/punicasuite\/tutorials\/blob\/master\/smart-contracts-docs-cn\/course04_use_blockchain_api_in_smart_contract.md\">GitHub<\/a><\/noindex>.<\/p>\n<h3>Postface<\/h3>\n<p>\nL'API Blockchain &amp; Block est une partie indispensable des contrats intelligents, car vous pouvez les utiliser pour demander des donn\u00e9es sur la blockchain et des donn\u00e9es sur le bloc dans les contrats intelligents. Dans les prochains articles, nous discuterons de la fa\u00e7on d'utiliser les autres API et d\u00e9couvrirons comment elles interagissent avec la blockchain Ontology.<\/p>\n<blockquote><p>Cet article a \u00e9t\u00e9 traduit par l'\u00e9quipe de Hashrate &amp; Shares sp\u00e9cialement pour OntologyRussia. <noindex><a rel=\"nofollow\" href=\"https:\/\/hashrate-and-shares.ru\/kak-razrabotat-smart-kontrakt-s-pomoshchyu-python-v-seti-ontology-chast-pervaya\">cliquer<\/a><\/noindex> <\/p><\/blockquote>\n<p> Vous \u00eates d\u00e9veloppeur ? Rejoignez notre communaut\u00e9 technique sur <noindex><a rel=\"nofollow\" href=\"https:\/\/discord.gg\/4TQujHj\">Discord<\/a><\/noindex>. De plus, jetez un coup d'\u0153il \u00e0 <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.ont.io\/\">Centre des d\u00e9veloppeurs<\/a><\/noindex> sur notre site, o\u00f9 vous pouvez trouver des outils pour d\u00e9veloppeurs, de la documentation et bien plus encore.<\/p>\n<h4>Ontology<\/h4>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ont.io\/\">site Ontology<\/a><\/noindex> <\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ontio\/\">GitHub<\/a><\/noindex> \/ <noindex><a rel=\"nofollow\" href=\"https:\/\/discord.gg\/pQRHtbD\">Discord<\/a><\/noindex><\/li>\n<li>Telegram <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/OntologyNetwork\">Fran\u00e7ais<\/a><\/noindex> \/ <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/OntologyAnnouncementsRu\">Russe<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/OntologyNetwork\">Twitter <\/a><\/noindex> \/ <noindex><a rel=\"nofollow\" href=\"https:\/\/www.reddit.com\/r\/OntologyNetwork\/\">Reddit <\/a><\/noindex><\/li>\n<\/ul>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/474966\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u042d\u0442\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u0441\u0435\u0440\u0438\u0438 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 \u043d\u0430 Python \u0432 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d \u0441\u0435\u0442\u0438 Ontology \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 SmartX. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043d\u0430\u0447\u043d\u0451\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 API \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 Ontology. API \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 Ontology \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d \u043d\u0430 7 \u043c\u043e\u0434\u0443\u043b\u0435\u0439: Blockchain &amp; Block API, Runtime API, Storage API, Native API, Upgrade API, Execution Engine API \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":52507,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-52506","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/kak-napisat-smart-kontrakt-na-python-v-seti-ontology-chast-1-blockchain-block-api\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043d\u0430 Python \u0432 \u0441\u0435\u0442\u0438 Ontology. \u0427\u0430\u0441\u0442\u044c 1: Blockchain &amp; Block API | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/kak-napisat-smart-kontrakt-na-python-v-seti-ontology-chast-1-blockchain-block-api\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-11-09T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:00:15+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Comment \u00e9crire un contrat intelligent en Python sur le r\u00e9seau Ontology. Partie 1 : Blockchain &amp; Block API | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/kak-napisat-smart-kontrakt-na-python-v-seti-ontology-chast-1-blockchain-block-api","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043d\u0430 Python \u0432 \u0441\u0435\u0442\u0438 Ontology. \u0427\u0430\u0441\u0442\u044c 1: Blockchain &amp; Block API | ProHoster","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/kak-napisat-smart-kontrakt-na-python-v-seti-ontology-chast-1-blockchain-block-api","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-11-09T21:00:00+00:00","article:modified_time":"2020-02-18T11:00:15+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"52506","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 03:50:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:42:42","updated":"2026-01-24 03:50:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/52506","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=52506"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/52506\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/52507"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=52506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=52506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=52506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}