Kami menerapkan rute secara terprogram menggunakan implementasi RouteDefinitionLocator
. Kami memiliki dua layanan yang harus mendaftar pada jalur rute yang sama, dimana salah satunya dimaksudkan sebagai cadangan jika yang lain tidak ada. Rute pilihan dengan jalur tertentu adalah:
RouteDefinition{id='CompositeDiscoveryClient_ms-1400133464', predicates=[PredicateDefinition{name='Path', args={pattern=/yambas/rest/apps/*/models/ms/**}}], filters=[FilterDefinition{name='RewritePath', args={regexp=/yambas/rest/apps/(?<remaining>.*), replacement=/ms/apps/${remaining}}}], uri=lb://ms, order=0}
Dan yang lebih umum, yang hanya akan menyala jika rute lain ditemukan:
RouteDefinition{id='CompositeDiscoveryClient_yambas-1171178634', predicates=[PredicateDefinition{name='Path', args={pattern=/yambas/rest/**}}], filters=[], uri=lb://yambas, order=0}
Jadi, saat memanggil /yambas/rest/apps/bla/models/ms
, rute pertama harus digunakan, dan saat memanggil /yambas/rest/apps/bla/models/otherms/*
, rute kedua (fallback ) harus digunakan.
Masalahnya adalah, bahkan atribut order pada rute tampaknya tidak menyelesaikan masalah ini; saat ini kami tidak menemukan kemungkinan untuk mengatur urutan/prioritas rute ini. Apakah ini disengaja?
/yambas/rest/apps/bla/models/ms
- person Andreas   schedule 06.05.2019