はじめに

SAPUI5でアプリケーションを作るにあたり、ODataは避けては通れないトピックです。
結構広いテーマなので、5~7回くらいに分けて書きたいと思います。
1回目はODataの概要について説明します。

ODataとは

OData(Open Data Protocol)とは簡単に言えば、HTTPを使ってサーバとブラウザでデータをやり取りするためのプロトコルです。
Microsoftが作った仕組みで、それをSAPでも利用しています。

イメージ

ODataのベースとなる考え方

ODataは"REST"の考え方がベースとなっています。
REST(REpresentational State Transfer)とは、Webサービスにおけるアーキテクチャのスタイルの一つです。
対象のリソースをURIで指定し、HTTPメソッド(GET, POSTなど)によって操作します。

OData – Everything that you need to know (Part 2)より引用

Representationとは

RepresentationとはURIによって指定されたリソースまたはその一部です。
たとえばPersonというリソースがあり、その人の連絡先情報を取得するODataサービスがあるとします。この場合、氏名、住所、電話番号などがRepresentationとなります。

RESTful APIとは

RESTful APIとは、RESTの6つの原則に従って作られたAPIのことです。

6つの原則

原則 説明
Client-Server クライアト・サーバー型であること(データの格納場所とユーザインターフェースを分離するため)
Stateless クライアントからサーバへのリクエストは、サーバがリクエストを理解するのに必要な情報をすべて含むこと。サーバ側にクライアントの情報は保存しない
Cacheable サーバからのレスポンスには、明示的あるいは暗黙的にキャッシュの可否が示されること
Uniform Interface コンポーネント間で統一されたインターフェースを使用すること。このために、リソースの特定方法(URI)、操作方法(HTTPメソッド)などの決まりがある。
Layered System レイヤー構成を可能にすること。クライアントはサーバではなく中間レイヤーと通信する場合もあるが、何とやり取りをしているかを意識する必要はない
Code on Demand サーバから送信されたコードをクライアントで実行することで、クライアント側の機能を一時的に拡張できるこ

ODataの特徴

ODataには次のような特徴があります。

  1. URIを使ってデータを読み書きする
  2. 言語に依存せずに利用できる
  3. JSONまたはXML形式でレスポンスを返す

1. URIを使ってデータを読み書きする

URI(Uniform Resource Identifier)とは、その名の通りインターネット上のリソースを一意に特定するための名前、または場所、またはその両方のことを指します。(ちなみに、URLもURIの一部です)
ODataにアクセスする際は、以下のようにURIを指定します。

OData Version 4.0 Part 2: URL ConventionsInformation published on non-SAP siteより引用

ひとまず、「URLのような形式でデータの取得や更新ができる」という理解で十分だと思います。

2. 言語に依存せずに利用できる

ODataはHTTPをベースとした仕組みなのでクライアント側、サーバ側とも言語の制約がありません。(HTTPリクエスト、レスポンスを作れればよい)
参考までにODataの公式リファレンスには、HTTP, C#, JavaScript, C++, Node.jsのサンプルがあります。

3. JSONまたはXML形式でレスポンスを返す

ODataのレスポンスの形式はJSON、またはXML形式です。
どのようなデータ形式で欲しいかはリクエストで指定します。

まとめ

  • ODataはRESTの考え方をもとに作られている
  • URIを指定してリソースを操作する
  • どのような言語でも使え、レスポンスはJSONまたはXML

参考

OData – Everything that you need to know (Part 1)
OData – Everything that you need to know (Part 2)
OData – Everything that you need to know (Part 3)
OData and SAP Netweaver Gateway. Part I. Introduction
RESTとは何か
Architectural Styles and the Design of Network-based Software Architectures

【SAPUI5】ODataとは的更多相关文章

  1. 【SAPUI5】ODataを構成するもの

    はじめに SAPUI5でアプリケーションを作るにあたり.ODataは避けては通れないトピックです.結構広いテーマなので.5-7回くらいに分けて書きたいと思います.1回目はODataの概要について説明し ...

  2. 【转】jqGrid 各种参数 详解

      [原文]http://www.cnblogs.com/younggun/archive/2012/08/27/2657922.htmljqGrid 各种参数 详解 JQGrid JQGrid是一个 ...

  3. 【WebApi】————.net WebApi开发(一)

    2013年08月08日 ⁄ 综合 ⁄ 共 554字 ⁄ 字号 小 中 大 ⁄ 评论关闭 [1].部署环境.net4及以上版本. [2].vs2010  开发需单独安装vs2010 sp1和mvc4 m ...

  4. 【转载】Github上优秀的.NET Core项目

    Github上优秀的.NET Core项目 Github上优秀的.NET Core开源项目的集合.内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志. ...

  5. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  6. 【原】谈谈对Objective-C中代理模式的误解

    [原]谈谈对Objective-C中代理模式的误解 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这篇文章主要是对代理模式和委托模式进行了对比,个人认为Objective ...

  7. 【原】FMDB源码阅读(三)

    [原]FMDB源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 FMDB比较优秀的地方就在于对多线程的处理.所以这一篇主要是研究FMDB的多线程处理的实现.而 ...

  8. 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

    [原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...

  9. 【调侃】IOC前世今生

    前些天,参与了公司内部小组的一次技术交流,主要是针对<IOC与AOP>,本着学而时习之的态度及积极分享的精神,我就结合一个小故事来初浅地剖析一下我眼中的“IOC前世今生”,以方便初学者能更 ...

随机推荐

  1. python中的字符串编码问题——1.理解编码和解码问题

    理解编码与解码(python2.7):1)编码 是根据一个想要的编码名称,把一个字符串翻译为其原始字节形式.>>> u_str=u'字符串编码aabbbcccddd'>> ...

  2. gitlab 灾备

    Gitlab创建备份 使用Gitlab一键安装包安装Gitlab非常简单,同样的备份恢复与迁移也非常简单.使用一条命令即可创建完整的Gitlab备份: gitlab-rake    gitlab:ba ...

  3. SQLSERVER2012里的扩展事件初尝试(上)

    SQLSERVER2012里的扩展事件初尝试(上) SQLSERVER2012里的扩展事件初尝试(下) 周未看了这两篇文章: 扩展事件在Denali CTP3里的新UI(一) 扩展事件在Denali ...

  4. Azure 镜像市场虚拟机映像制作指南

    本指南为 Azure 镜像市场(以下简称 Azure 镜像市场)独立软件供应商介绍制作虚拟机映像并上传到Azure的主要过程. 制作虚拟机映像有两种方式.一种是直接在Azure上申请相应的操作系统虚拟 ...

  5. ASM Disk Discovery 最佳实践

    ASM DISK 的Discovery PATH ASM实例的ASM_DISKSTRING初始化参数使用一个逗号分割的字符串限制ASM实例发现的DISK可以用于ASM DISK, 该字符串支持通配符如 ...

  6. Office 365 Pass-through身份验证及Seamless Single Sign-On

    Hello 小伙伴们, 这篇文章将视点聚焦在传递身份验证(Pass-through Authentication)上,将分享如何安装,配置和测试Azure Active Directory(Azure ...

  7. 各个系统Docker安装

    Ubuntu 1.Ubuntu 14.04及以上版本 Ubuntu 14.04版本官方软件源已经自带了Docker包,可以直接安装: $ sudo apt-get update $ sudo apt- ...

  8. 关于第一场HBCTF的Web题小分享,当作自身的笔记

    昨天晚上6点开始的HBCTF,虽然是针对小白的,但有些题目确实不简单. 昨天女朋友又让我帮她装DOTA2(女票是一个不怎么用电脑的),然后又有一个小白问我题目,我也很热情的告诉她了,哎,真耗不起. 言 ...

  9. 网络编程--Socket(套接字)

    网络编程 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯.网络编程中 有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后 如何可靠高效的进行数据传输.在 ...

  10. SDN 第一次上机作业

    第一题 拓扑: 测试连通性: 第二题 拓扑: 测试连通性: 第三题 拓扑: 测试连通性: