zoukankan      html  css  js  c++  java
  • OData的初步认识及使用

    OData是什么

      Open Data Protocol(OData),程序数据库格式标准化的开放数据协议,以简单和标准的方法,建造或消除可查询和可操作的RESTful API,是用来查询和更新数据的一种Web协议,其提供了把存在于应用程序中的数据暴露出来的方式。Apache Olingo 是个 Java 库,用来实现OData。

    OData产生契机

      已知REST只是一种设计Web服务的思想,不是一种标准化的协议,因此会导致各家公布的RESTful API在统一通用方面的欠缺。OData就是为了弥补这种欠缺而被提出来的标准协议。

    实施OData

    如果需要实施OData服务,需要完成以下四个部分:

    • OData模型

      定义数据结构,一般发生在后端系统。

    • OData协议

      支持CRUDQ(创建,读取,修改,删除,查询)功能,数据的传输可以使用XML或者JSON。

    • OData客户端库

      保证了客户端能够使用库函数方便的访问OData服务。注意,客户端库并不是必须的,但是尽量有,这样可以节省大量的编码工作。

    • OData服务

      实现了OData协议,可以最终被客户端访问的服务。

    • OData服务至少向外暴露一下三个接口:

         1: {host}/:  获取实体列表

         2: {host}/$metadata: 获取实体元数据

         3: {host}/{entityId}: 获取对应实体的数据  (标准查询参数:  ?$select=id,name&$filter=id eq 1 and age gt 20)

    OData服务的结构

    • 服务文档(Service Document)
    • 服务元结构文档(Service Metadata Document)

    以上两种文档包含了:

    • 实体(Entity)
    • 实体类型(Entity Type)
    • 实体集合(Entity Set)
    • 属性(Property)
    • 导航属性(Navigation Property)
    • 关联(Association)

    OData的使用

    一、函数的使用

    • contains(包含)$filter=contains(Name,'momo')
    • not contains(不包含)
    • startswith(以xx开头)
    • endswith(以xx结尾)
    • length(字符长度等于x)
    • indexof(字符长度等于x索引为n开始包含xx字符)
    • replace(替换)
    • substring(从第n个字符开始)
    • tolower(转换为小写)
    • toupper(转换为大写)
    • trim(去空格后)

    二、$filter运算符

    eq(等于);ne(不等于);gt(大于);ge(大于等于);lt(小于);le(小于等于);and(且);or(或);()(分组)

    三、$orderby排序  

    http://localhost:5000/userInfo?$orderby=name desc,EventName asc

    四、$top,skip,inlinecount客户端换页

    http://localhost:5000/userInfo?$top=5&$skip=1&$inlinecount=allpages

    五、$count数据量

    六、$expand嵌入内容

    七、$format格式化

    八、$select查询字段的列表(和sql中select后面的表达式一样)

  • 相关阅读:
    select_related与prefetch_related
    settings源码
    Django路由系统
    Django
    Django-下载安装-配置-创建Django项目-三板斧简单使用
    前端相关知识
    xadmin后台管理
    redis数据库
    ❥git❥-----协同开发,冲突解决 合并分支(项目中使用git)
    git的基本使用
  • 原文地址:https://www.cnblogs.com/huie/p/13094274.html
Copyright © 2011-2022 走看看