Loopback
/
Grieg Research Guide
Grieg Research Guide
- Annotert bibliografi
- Selve bibliografien lages i Zotero
- Skal inneholde:
- Vurderinger av referanser
- Kommentarer til vurderinger
- Roller (redaktør, vurderingsforfatter)
- Godkjenning og revidering
- Lenker og/eller synking mot eksterne kilder
- Zotero
- Mermeid
- ...
- Opinionated web-API-rammeverk
- Node/Express
- Kan bruke både lokale databaser og andre web-APIer for persistens
- Brukerautentisering
- Hovedaktør: IBM
- Automatisk Angular-SDK for frontend
Loopback
CLI / Lag modell
> lb model ? Enter the model name: Assessment ? Select the data-source to attach Comment to: db ? Select model's base class PersistedModel ? Expose Assessment via the REST API? Yes ? Custom plural form (used to build REST URL): ? Common model or server only? common
Let's add some Assessment properties now. Enter an empty property name when done. ? Property name: body invoke loopback:property ? Property type: string ? Required? Yes ? Default value[leave blank for none]: ...
// common/models/assessment.json
{
"name": "Assessment",
"base": "PersistedModel",
"properties": {
"body": {
"type": "string",
"required": true
},
...
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "READ",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW"
},
{
"accessType": "WRITE",
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW"
}
],
...
}
Modell-definisjon
// common/models/assessment.js
'use strict';
module.exports = function(Assessment) {
Assessment.validatesPresenceOf('projectId');
Assessment.validatesPresenceOf('referenceId');
Assessment.validatesPresenceOf('creatorId');
...
};

Connectors
- Minne
- Postgres, MySQL, Oracle, SQLite
- MongoDB, CouchDB, Redis, Riak, Neo4j, ...
- REST, SOAP
- Elasticsearch
Angular SDK
declare var Object: any;
export interface AssessmentInterface {
"id"?: any;
"created"?: any;
"title": any;
"body": any;
"projectId"?: any;
"creatorId"?: any;
"referenceId"?: any;
project?: Project;
comments?: Comment[];
creator?: Contributor;
contributors?: Contributor[];
relatedWorks?: Work[];
subjects?: Concept[];
reference?: Reference;
}
export class Assessment implements AssessmentInterface {
...
}
Loopback
By Simon Mitternacht
Loopback
- 519