sql >> Databáze >  >> NoSQL >> MongoDB

Jak vystavím novou metodu REST prostřednictvím úložiště Spring Data MongoDB s metadaty ALPS/HATEOAS?

tl;dr

Bude potřebovat vlastní implementace pro úložiště a řadič.

Podrobnosti

Musíme se ujistit, že se neztratíme ve všech různých aspektech, které zde zmiňujete. Zkusím rozmotat větve zdola nahoru:

Spouštění skriptů MongoDB

Jako referenční dokumentace o spouštění skriptů pomocí MongoDB uvádí (a vy jste již objevili), funkci poskytuje by MongoTemplate 's ScriptOperations . Proto by mělo být jasné, jak toto API používat. Další informace naleznete v Javadoc.

Provádění skriptů prostřednictvím úložišť Spring Data

Další věc, kterou požadujete, je spouštění těchto skriptů prostřednictvím abstrakce úložiště. Abychom zde nevyhodili dítě s vodou z koupele, ujistěte se, že rozumíme účelu úložiště:simuluje sbírku agregovaných kořenů a přístup k nim aniž by odhaloval základní mechanismus perzistence . Zpřístupnění typů jako ExecutableMongoScript na úložišti by porušila poslední vlastnost. Správným přístupem je tedy vytvořit vlastní implementaci pro tuto konkrétní funkci, jak je popsáno v referenční dokumentace k úložištím Spring Data .

Odhalení funkcí prostřednictvím REST

Předpokládám, že odkazujete na funkci Spring Data REST, abyste ve své otázce odhalili vyhrazený zdroj pro metodu dotazu na úložiště. Spring Data REST v současné době odhaluje pouze deklarativní metody dotazů automaticky, většinou z toho důvodu, že je těžké uvažovat o správné metodě HTTP pro podporu vlastních implementací, protože nemůžeme odhadnout, co se uvnitř metody děje.

Doporučený způsob, jak odhalit vlastní metody dotazů na úložiště pomocí vlastního řadiče s @RequestMapping vyhovující vašemu účelu, volání úložiště a použití PersistentEntityResourceAssembler injektovatelné do metody handler, aby se vytvořil PersistentEntityResource vrátit se.




  1. Oznámení Redis:Získejte klíč a hodnotu po vypršení platnosti

  2. MongoDB:Jak reprezentovat schéma schématu v diplomové práci?

  3. Sada dvou uzlů MongoDB replik bez arbitra

  4. Dokáže Meteor správně zpracovat data aktualizovaná externě přímo do databáze MongoDB?