mirror of https://github.com/openspug/spug
A 配置中心API新增noPrefix查询参数支持无前缀key
parent
7e92fba746
commit
c82f41709c
|
@ -11,12 +11,13 @@ import json
|
||||||
|
|
||||||
def get_configs(request):
|
def get_configs(request):
|
||||||
data = {}
|
data = {}
|
||||||
app, env_id = _parse_params(request)
|
app, env_id, no_prefix = _parse_params(request)
|
||||||
if not app or not env_id:
|
if not app or not env_id:
|
||||||
return HttpResponse('Invalid params', status=400)
|
return HttpResponse('Invalid params', status=400)
|
||||||
# app own configs
|
# app own configs
|
||||||
for item in Config.objects.filter(type='app', o_id=app.id, env_id=env_id).only('key', 'value'):
|
for item in Config.objects.filter(type='app', o_id=app.id, env_id=env_id).only('key', 'value'):
|
||||||
data[f'{app.key}_{item.key}'] = item.value
|
key = item.key if no_prefix else f'{app.key}_{item.key}'
|
||||||
|
data[key] = item.value
|
||||||
|
|
||||||
# relation app public configs
|
# relation app public configs
|
||||||
if app.rel_apps:
|
if app.rel_apps:
|
||||||
|
@ -25,7 +26,7 @@ def get_configs(request):
|
||||||
id_key_map = {x.id: x.key for x in App.objects.filter(id__in=app_ids)}
|
id_key_map = {x.id: x.key for x in App.objects.filter(id__in=app_ids)}
|
||||||
for item in Config.objects.filter(type='app', o_id__in=app_ids, env_id=env_id, is_public=True) \
|
for item in Config.objects.filter(type='app', o_id__in=app_ids, env_id=env_id, is_public=True) \
|
||||||
.only('key', 'value'):
|
.only('key', 'value'):
|
||||||
key = f'{id_key_map[item.o_id]}_{item.key}'
|
key = item.key if no_prefix else f'{id_key_map[item.o_id]}_{item.key}'
|
||||||
data[key] = item.value
|
data[key] = item.value
|
||||||
|
|
||||||
# relation service configs
|
# relation service configs
|
||||||
|
@ -34,7 +35,7 @@ def get_configs(request):
|
||||||
if src_ids:
|
if src_ids:
|
||||||
id_key_map = {x.id: x.key for x in Service.objects.filter(id__in=src_ids)}
|
id_key_map = {x.id: x.key for x in Service.objects.filter(id__in=src_ids)}
|
||||||
for item in Config.objects.filter(type='src', o_id__in=src_ids, env_id=env_id).only('key', 'value'):
|
for item in Config.objects.filter(type='src', o_id__in=src_ids, env_id=env_id).only('key', 'value'):
|
||||||
key = f'{id_key_map[item.o_id]}_{item.key}'
|
key = item.key if no_prefix else f'{id_key_map[item.o_id]}_{item.key}'
|
||||||
data[key] = item.value
|
data[key] = item.value
|
||||||
|
|
||||||
# format
|
# format
|
||||||
|
@ -78,4 +79,4 @@ def _parse_params(request):
|
||||||
env = Environment.objects.filter(key=env_key).first()
|
env = Environment.objects.filter(key=env_key).first()
|
||||||
if env:
|
if env:
|
||||||
env_id = env.id
|
env_id = env.id
|
||||||
return app, env_id
|
return app, env_id, request.GET.get('noPrefix')
|
||||||
|
|
Loading…
Reference in New Issue