2017-07-31 64 views
6

Paylaşım işlevleri/yolları olan 2 uygulama sahibim. Örneğin, her iki uygulamada da aynı şekilde çalışan bir günlük, hedef izleme, uyku takibi vb. Her uygulamaya özel rotalar da vardır. AppA'da bir kullanıcı kendi ruh hallerini izleyebilir ve AppB'de bir kullanıcı kendi doktorlarından notları görüntüleyebilir.Ön uç mantığını içeren birden fazla uygulamaya sahip Umbrella projesi.

/apps genel uygulaması olan AppA ve AppB'de yer alan bir şemsiye projesine sahip olmanın bir yolu var mı? Her uygulamanın kendi yönlendiricisi/denetleyicileri/şablonları vb. Olacaktır. AppA ve AppB'nin her biri, GenericApp'ı bağımlılık olarak gerektirir. Şimdiye kadar, ön uç mantığını (web) içeren bir uygulama ile sadece şemsiye projelerini görmüştüm, diğer uygulamalar da dahil edilen kütüphanelerdi. Bu, birden fazla uygulamaya yönlendirme ile nasıl çalışır? Bunun için yapabileceğim başka bir yaklaşım var mı?

Aradığımla ilgili this question & answer buldum, ancak tam olarak aradığım şey bu değil. Diğer kütüphanelerde de dahil olmak üzere bir ön uç uygulamasının modelini takip ediyor gibi görünüyor.

cevap

4

Evet, 'jenerik' rotaları ayrı bir şemsiye uygulamasına ve forward ürününe AppA ve AppB'dan ayırabilirsiniz.

AppA ve AppB'dan gelen istekleri paylaşılan koda iletmek için Phoenix.Router.forward/4 işlevini kullanın.

pipeline :exq do 
    plug :accepts, ["html"] 
    plug :fetch_session 
    plug :fetch_flash 
    plug :put_secure_browser_headers 
    plug ExqUi.RouterPlug, namespace: "exq" 
    end 

    scope "/exq", ExqUi do 
    pipe_through :exq 
    forward "/", RouterPlug.Router, :index 
    end 
:

Örneğin, bu exq_ui daha büyük bir uygulama dahil edilebilir nasıl