JavaScript를 이용한 BaaS 예제

이게 뭔가요?

BaaS(Backend as a Service)를 잘 쓰자는 취지에서 JavaScript 예제를 만들어보았습니다. 초보자를 위해 가능한 단순하게 만들었습니다.
근래 많은 BaaS가 사라지고 새로운 것이 나오고 있습니다. 많은 관심 부탁드립니다.
특히 Parse가 서비스를 종료하게 되며, 그 오픈 소스 소프트웨어인 Parse Server를 이용한 제3의 서비스가 있습니다.

Firebase 예제

    var config = {
      apiKey: "AIzaSyDMRNixCXgWuD3z1P2f_hlM3LqxJry5Rks",
      authDomain: "blog-c227a.firebaseapp.com",
      databaseURL: "https://blog-c227a.firebaseio.com",
      storageBucket: "blog-c227a.appspot.com",
    };
    firebase.initializeApp(config);

    firebase.database().ref('/comments/').limitToLast(5).once('value').then(function(snapshot) {
      console.log(snapshot.val());
      drawCommentsTable(snapshot.val());
      // $.each(results, function(index, value){ ...
      // row.append($("" + value.comment + ""));
      currentPage++;
    });

youre.space usergrid 예제

데이터를 조회하는 부분. usergrid와 baas.io는 서로 비슷합니다.
<script src="js/usergrid.js"></script>
<script>
$(document).ready(function() {
    var client = new Usergrid.Client({
        'URI':'https://api02.youre.space',
        'orgName':'svr42mp', 
        'appName':'baas.io',
        //'token':baas_token
    });

    var options = {
        'client':client,
        'endpoint':'comments',
        'qs':{
            'ql':'order by created DESC'
        }
    }

    client.request(options, function (err, data) {
      if(!err){
          drawCommentsTable(data.entities);
      }else{
          console.log(err.toString());
      }
    });
}
    

kt baas.io 예제

데이터를 조회하는 부분
var io = new Baas.IO({
  'URI':'https://api.baas.io',
  'orgName':'imyaman',
  'appName':'b-log',
});

var options = {
  'client':io,
  'endpoint':'comments',
  'qs':{
    'ql':'order by created DESC'
  }
}

io.request(options, function (err, data) {
 if(!err){
 }else{
 }
});
    

Parse 예제

Parse.initialize('cdzz7YuYMPaopERtDOd15bUvv7oSaFtJYkCNZjIg', 'cPEU1ggQqkfL1Uh2fPekOWsmrCs7xc39H6RKZRpr');
var query = new Parse.Query('Comments');
query.limit(10);
query.find({
  success: drawCommentsTable,
  error: drawCommentsError
});

Parse Server 예제

    Parse.initialize('cdzz7YuYMPaopERtDOd15bUvv7oSaFtJYkCNZjIg', 'cPEU1ggQqkfL1Uh2fPekOWsmrCs7xc39H6RKZRpr');
    Parse.serverURL = 'http://jts.youre.space:1337/parse'

    var query = new Parse.Query('Comments');
    query.skip(pgCount*currentPage);
    query.limit(pgCount);
    query.descending("createdAt");
    query.find({
        success: drawCommentsTable,
        error: drawCommentsError
    });
    currentPage++;

Buddy - Parse Server 예제

    Parse.initialize('***********', '**********');
    Parse.serverURL = 'http://parse.buddy.com/parse'

    var query = new Parse.Query('Comments');
    query.skip(pgCount*currentPage);
    query.limit(pgCount);
    query.descending("createdAt");
    query.find({
        success: drawCommentsTable,
        error: drawCommentsError
    });
    currentPage++;

Kinvey 예제

var promise = Kinvey.init({
  appKey : 'kid_WkVVFh1N5',
  appSecret : '8ffb767dda014827bd9de4ea01df7a32'
});
promise.then(function(activeUser) {
  if(null === activeUser) {
    return Kinvey.User.create();
  }
}, function(error) {
});

var promise = Kinvey.DataStore.find('Comments', null, {
  success : drawCommentsTable,
  error : drawCommentsError
});

Microsoft Azure Mobile Services 예제

var client = new WindowsAzure.MobileServiceClient('https://nextlayer.azure-mobile.net/', 'tIBCRAuvMqKAojuCYMmbqUdLzKSrNw70');
var commentsItemTable = client.getTable('Comments');
commentsItemTable.systemProperties = WindowsAzure.MobileServiceTable.SystemProperties.All;

var query = commentsItemTable.where({ });
query.read().then(function(commentsItems) {
  var listItems = $.map(commentsItems, function(item){
  });
  $('#commentsTable').empty().append(listItems).toggle(listItems.length > 0);
}, handleError);

Azure Mobile Services 예제 새로 만든 것 여기

SKTelecom T developers BaaS 예제

Baas.initialize("7dab9da0-9541-4c63-9c6a-452c02ba957a");
var query = new Baas.Query('Comments');
query.limit(10);
query.find({
  success: drawCommentsTable,
  error: drawCommentsError
});

설명

우선 SKT의 T developers에서 제공하는 BaaS의 예시로 설명
여기

소스코드를 보라

속도는 baas.io, sktdevbaas, parse, kinvey 순

편리함은 baas.io, parse, sktdevbaas, kinvey 순

Microsoft의 Azure Mobile Services는 신세계. 대단함.