2016-12-16 12 views
1

Я создал простой API с помощью Loopback. Он отлично работает и дает результат ниже этого URL. http://localhost:3000/api/CoffeeShopsПолучите пользовательский ответ JSON от Loopback

[ 
    { 
    "name": "Coffee shop 1", 
    "city": "City one", 
    "id": 1 
    } 
] 

Мне нужно изменить JSON для этого шаблона, используя Loopback промежуточного программного обеспечения.

{ 
    "_embedded": { 
    "CoffeeShops": [ 
     { 
     "name": "Coffee shop 1", 
     "city": "City one", 
     "_links": { 
      "self": { 
      "href": "http://localhost:3000/CoffeeShops/1" 
      }, 
      "CoffeeShop": { 
      "href": "http://localhost:3000/CoffeeShops/1" 
      } 
     } 
     } 
    ] 
    } 
} 

ответ

2

еще лучше, чем промежуточного слоя, вы можете использовать remote hook

Использование afterRemote перехватывает для изменения, журнал, или иным образом использовать Результаты удаленного метода перед отправкой его удаленному клиенту. Поскольку хук afterRemote запускается после выполнения удаленного метода, он может получить доступ к результату удаленного метода, но не может изменять входные аргументы.

Следующий код внутри coffee-shop.js будет делать трюк

CoffeeShop.afterRemote('find', function(ctx, output, next) { 
    ctx.result = { 
    _embedded: { 
     CoffeeShops: [{ 
     name: output.name, 
     city: output.city, 
     _links: { 
      self: { 
      href: "http://localhost:3000/CoffeeShops/" + id 
      }, 
      CoffeeShop: { 
      href: "http://localhost:3000/CoffeeShops/" + id 
      } 
     } 
     }] 
    } 
    }; 
    next(); 
}); 
+0

Это работает, спасибо. – IsuruAb

-1

Используйте следующий код для создания JSON:

obj_list = [ { 'name': 'Coffee shop 1', 'city': 'City one','id': 1},...] 

dict_template = { '_embedded': { 'CoffeeShops': [] } } 

for object in obj_list: 
    shop_dict = { '_links' : { 'self':{}, 'CoffeeShops':{} }} 
    shop_dict['name'] = object['name'] 
    shop_dict['city'] = object['city'] 
    link = 'http://localhost:3000/CoffeeShops/' + str(object['id']) 
    shop_dict['_links']['self']['href'] = link 
    shop_dict['_links']['CoffeeShops']['href'] = link 
    dict_template['_embedded']['CoffeeShops'].append(shop_dict) 

print dict_template 
+0

вы можете объяснить то, как я подключить это решение с петлевой промежуточного слоя? – IsuruAb

+0

ОК, поэтому вы отвечаете на вопрос Javascript с помощью фрагмента python. Это смело – Overdrivr

 Смежные вопросы

  • Нет связанных вопросов^_^