{"id":36795,"date":"2019-10-31T22:13:50","date_gmt":"2019-10-31T19:13:50","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-perestat-delat-odno-i-to-zhe\/"},"modified":"2019-10-31T22:13:50","modified_gmt":"2019-10-31T19:13:50","slug":"kak-perestat-delat-odno-i-to-zhe","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/kak-perestat-delat-odno-i-to-zhe","title":{"rendered":"Hur slutar man att g\u00f6ra samma sak om och om igen","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00c4lskar du att upprepa rutinoperationer g\u00e5ng p\u00e5 g\u00e5ng? Det g\u00f6r inte jag. Men varje g\u00e5ng jag arbetade med Rosetelecoms datalager i SQL-klienten var jag tvungen att manuellt ange alla joins mellan tabeller. Och detta trots att i 90 % av fallen f\u00e4lten och villkoren f\u00f6r att f\u00f6rena tabellerna st\u00e4mde \u00f6verens fr\u00e5n fr\u00e5ga till fr\u00e5ga! Det skulle k\u00e4nnas som att vilken SQL-klient som helst har autocompletionsfunktioner, men f\u00f6r datalager fungerar det inte alltid: d\u00e4r s\u00e4llan skapas unique constraint och foreign key f\u00f6r att \u00f6ka prestanda, och utan det kan programmet inte f\u00f6rst\u00e5 hur entiteterna h\u00e4nger ihop och vad det kan erbjuda dig.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/rostelecom\/blog\/462021\/\"><img decoding=\"async\" alt=\"Hur slutar man att g\u00f6ra samma sak om och om igen\" src=\"\/wp-content\/uploads\/2019\/08\/998faa579fa9772fa4509980be551be3.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Efter att ha g\u00e5tt igenom f\u00f6rnekelse, ilska, f\u00f6rhandlande, depression och n\u00e4rmande till acceptans, best\u00e4mde jag mig - varf\u00f6r inte f\u00f6rs\u00f6ka implementera autocompletion sj\u00e4lv med lite blackjack som man ska? Jag anv\u00e4nder klienten dbeaver, skriven i java, och den har en community-version med \u00f6ppen k\u00e4llkod. Jag kom p\u00e5 en enkel plan:<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<ol>\n<li>Hitta klasserna i k\u00e4llkoden som ansvarar f\u00f6r autocompletion<\/li>\n<li>Omrikta dem f\u00f6r att arbeta med externa metadata och h\u00e4mta information om joins d\u00e4rifr\u00e5n<\/li>\n<li>??????<\/li>\n<li>PROFIT<\/li>\n<\/ol>\n<p>\nJag kom snabbt fram till den f\u00f6rsta punkten - jag hittade i bugtrackern en beg\u00e4ran om att justera autocompletion och i relaterad <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dbeaver\/dbeaver\/commit\/4f7652c1d11f21d29cf734155b133e9a426c727f\">commit<\/a><\/noindex> uppt\u00e4ckte jag klassen SQLCompletionAnalyzer. Jag tittade p\u00e5 koden - precis vad jag beh\u00f6vde. Nu \u00e5terstod det bara att skriva om den s\u00e5 att allt fungera. Jag v\u00e4ntade p\u00e5 en ledig kv\u00e4ll och b\u00f6rjade planera implementationen. Reglerna f\u00f6r tabellrelationer (metadata) best\u00e4mde jag mig f\u00f6r att spara i json. Jag hade ingen praktisk erfarenhet av att arbeta med detta format och den aktuella uppgiften verkade vara en m\u00f6jlighet att \u00e5tg\u00e4rda denna brist. <\/p>\n<p>F\u00f6r att arbeta med json best\u00e4mde jag mig f\u00f6r att anv\u00e4nda biblioteket <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/fangyidong\/json-simple\">json-simple<\/a><\/noindex> fr\u00e5n Google. H\u00e4r b\u00f6rjade \u00f6verraskningarna. Som det visade sig \u00e4r dbeaver, som ett \u00e4kta program, skrivet p\u00e5 eclipse-plattformen med hj\u00e4lp av OSGi-ramverket. F\u00f6r erfarna utvecklare ger detta bekv\u00e4mlighet f\u00f6r att hantera beroenden, f\u00f6r mig liknade det mer m\u00f6rk magi, som jag uppenbarligen inte var beredd p\u00e5: vanligtvis skriver jag importen av de klasser jag beh\u00f6ver fr\u00e5n biblioteket json-simple i toppen av den redigerade klassen, anger det i pom.xml, efter vilket projektet kategoriskt v\u00e4grar att byggas ordentligt och kraschar med fel. <\/p>\n<p>Att \u00e5tg\u00e4rda byggfel resulterade i att jag skrev in biblioteket inte i pom.xml, utan i manifestet manifest.mf, som OSGI f\u00f6reskriver, och angav det som import-package. Inte den vackraste l\u00f6sningen, men den fungerar. H\u00e4r d\u00f6k n\u00e4sta \u00f6verraskning upp. Om du utvecklar i IntelliJ IDEA kan du inte bara starta debuggern f\u00f6r ditt projekt som \u00e4r baserat p\u00e5 Eclipse-plattformen: en oerfaren utvecklare m\u00e5ste lida lika mycket som en analytiker utan autocompletion av sina fr\u00e5gor. Till hj\u00e4lp kom sj\u00e4lva utvecklarna av Beaver, som angav i wikin alla de danser som m\u00e5ste utf\u00f6ras. Det mest frustrerande var att \u00e4ven efter alla dessa anstr\u00e4ngningar v\u00e4grade projektet att starta i debuggern med det importerade json-biblioteket (trots att det fortfarande byggdes framg\u00e5ngsrikt i det f\u00e4rdiga produkten). <\/p>\n<p>Vid den tiden hade jag upplevt obehaget med att anv\u00e4nda json f\u00f6r min uppgift \u2014 metadata var t\u00e4nkt att redigeras manuellt, och f\u00f6r det passar xml-formatet b\u00e4ttre. Det andra argumentet f\u00f6r xml var att JDK hade alla n\u00f6dv\u00e4ndiga klasser, vilket gjorde att jag kunde sluta k\u00e4mpa med det externa biblioteket. Jag flyttade med stor gl\u00e4dje all metadata fr\u00e5n json till xml och b\u00f6rjade arbeta med logiken f\u00f6r autocompletion. <\/p>\n<p><b class=\"spoiler_title\">Exempel p\u00e5 metadata<\/b><\/p>\n<pre><code class=\"xml\">dim_account\n        dim_partner\n        \n        \n    \n    \n        dim_account\n        dim_branch<\/code><\/pre>\n<p>Som ett resultat av detta <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/v9854268996\/dbeaver\">gjorde jag \u00e4ndringar<\/a><\/noindex> i klasserna SQLUtils och SQLCompletionAnalyzer. Id\u00e9n \u00e4r f\u00f6ljande: om programmet inte lyckas f\u00f6resl\u00e5 l\u00e4mpliga autocompletion-f\u00f6rslag enligt grundlogiken, kontrollerar det om det finns m\u00f6jliga joins enligt filen xml. I sj\u00e4lva filen lagras tabell-par med angivande av f\u00e4lt som dessa tabeller ska kopplas samman med. Begr\u00e4nsningar f\u00f6r tekniska datumen f\u00f6r poster eff_dttm och exp_dttm och flaggan f\u00f6r logisk borttagning deleted_ind anges som standard.<\/p>\n<p>N\u00e4r \u00e4ndringarna i koden hade gjorts uppstod fr\u00e5gan \u2014 vem kommer att fylla i metadatafilen? Det finns m\u00e5nga entiteter i lagret, att skriva alla kopplingar sj\u00e4lv blir tungt. I slut\u00e4ndan beslutade jag att ge denna uppgift till mina kollegor inom analys. Metadatafilen lade jag ut i svn, d\u00e4rifr\u00e5n g\u00f6rs en checkout i den lokala katalogen med programmet. Principen \u00e4r f\u00f6ljande: har en ny entitet lagts till i lagret? En analytiker l\u00e4gger in m\u00f6jliga joins i filen, committar \u00e4ndringarna, de andra g\u00f6r checkout till sig och njuter av det fungerande autofyllandet: community, kunskapsuppbyggnad och allt s\u00e5nt. Jag h\u00f6ll en workshop f\u00f6r kollegorna om anv\u00e4ndning av programmet, skrev en artikel i Confluence \u2014 nu har f\u00f6retaget ett bekv\u00e4mare verktyg.<\/p>\n<p>Arbetet med denna funktion gav mig insikten att man inte ska vara r\u00e4dd f\u00f6r att peta i open source-projekt \u2014 som regel har de en tydlig arkitektur, och \u00e4ven grundl\u00e4ggande kunskaper i spr\u00e5ket r\u00e4cker f\u00f6r experiment. Med en viss grad av envishet kan man till och med bli av med de hatade rutinoperationerna och spara tid f\u00f6r nya experiment.<br \/>\n<br \/>K\u00e4lla: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/rostelecom\/blog\/462021\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u044b \u043b\u044e\u0431\u0438\u0442\u0435 \u0438\u0437 \u0440\u0430\u0437\u0430 \u0432 \u0440\u0430\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438? \u0412\u043e\u0442 \u0438 \u044f \u043d\u0435\u0442. \u041d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432 SQL-\u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c \u0420\u043e\u0441\u0442\u0435\u043b\u0435\u043a\u043e\u043c\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0434\u0436\u043e\u0439\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438 \u0440\u0443\u0447\u043a\u0430\u043c\u0438. \u0418 \u044d\u0442\u043e \u043f\u0440\u0438\u0442\u043e\u043c, \u0447\u0442\u043e \u0432 90% \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043f\u043e\u043b\u044f \u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u043b\u0438 \u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u0437\u0430\u043f\u0440\u043e\u0441\u0443! \u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u043b\u044e\u0431\u043e\u0439 SQL-\u043a\u043b\u0438\u0435\u043d\u0442 \u0438\u043c\u0435\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u043d\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27562,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36795","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.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u044b \u043b\u044e\u0431\u0438\u0442\u0435 \u0438\u0437 \u0440\u0430\u0437\u0430 \u0432 \u0440\u0430\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438? \u0412\u043e\u0442 \u0438 \u044f \u043d\u0435\u0442. \u041d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432 SQL-\u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c \u0420\u043e\u0441\u0442\u0435\u043b\u0435\u043a\u043e\u043c\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0434\u0436\u043e\u0439\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438 \u0440\u0443\u0447\u043a\u0430\u043c\u0438.\" \/>\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\/sv\/blog\/administrirovanie\/kak-perestat-delat-odno-i-to-zhe\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u044b \u043b\u044e\u0431\u0438\u0442\u0435 \u0438\u0437 \u0440\u0430\u0437\u0430 \u0432 \u0440\u0430\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438? \u0412\u043e\u0442 \u0438 \u044f \u043d\u0435\u0442. \u041d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432 SQL-\u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c \u0420\u043e\u0441\u0442\u0435\u043b\u0435\u043a\u043e\u043c\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0434\u0436\u043e\u0439\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438 \u0440\u0443\u0447\u043a\u0430\u043c\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/kak-perestat-delat-odno-i-to-zhe\" \/>\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-10-31T19:13:50+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:13:50+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\udd47Hur man slutar g\u00f6ra detsamma | ProHoster","description":"Tycker du om att upprepa rutinoperationer om och om igen? Det g\u00f6r inte jag heller. Men varje g\u00e5ng i SQL-klienten n\u00e4r jag arbetade med Rostelekoms lager var jag tvungen att skriva alla joins mellan tabellerna f\u00f6r hand.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/kak-perestat-delat-odno-i-to-zhe","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 | ProHoster","og:description":"\u0412\u044b \u043b\u044e\u0431\u0438\u0442\u0435 \u0438\u0437 \u0440\u0430\u0437\u0430 \u0432 \u0440\u0430\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438? \u0412\u043e\u0442 \u0438 \u044f \u043d\u0435\u0442. \u041d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432 SQL-\u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c \u0420\u043e\u0441\u0442\u0435\u043b\u0435\u043a\u043e\u043c\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0434\u0436\u043e\u0439\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438 \u0440\u0443\u0447\u043a\u0430\u043c\u0438.","og:url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/kak-perestat-delat-odno-i-to-zhe","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-10-31T19:13:50+00:00","article:modified_time":"2019-10-31T19:13:50+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36795","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-22 04:53:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:38:24","updated":"2026-01-22 04:53:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/36795","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=36795"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/36795\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/27562"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=36795"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=36795"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=36795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}