timitek/getrets

timitek的GetRETS API的一个简单的“无框架”PHP包装器(http://www.timitek.com)。GetRETS是timitek开发的一个产品/服务,使得能够快速构建从多个MLS拉取列表数据的房地产相关应用程序,无需了解任何关于RETS或IDX,也不必担心映射和存储从这些不同来源的列表数据的问题。

1.0.7 2017-07-19 02:12 UTC

This package is not auto-updated.

Last update: 2024-09-29 02:26:37 UTC


README

timitek的GetRETS® API的一个简单的“无框架”php包装器(http://www.timitek.com)。

演示地址: http://www.timitek.com/phpsdk/

GetRETS®是timitek开发的一个产品/服务,它使得能够快速构建从多个MLS拉取列表数据的房地产相关应用程序,无需了解任何关于RETS或IDX,也不必担心映射和存储从这些不同来源的列表数据的问题。

GetRETS®作为一个服务提供RESTful API端点以消费数据,尽管它不仅限于仅用于PHP应用程序,并且用户不需要使用我们的SDK,但我们已经提供了一个简单的PHP SDK以及它的使用文档。

目录

如何使用

下载/安装

所需的所有操作是从src下载单个GetRETS.php文件并在您的项目中使用。

可选地,您可以使用composer进行安装。

composer require timitek/getrets

传统PHP使用

include "GetRETS.php";
use Timitek\GetRETS\GetRETS;
$getRets = new GetRETS($customerKey);
$listings = $getRets->getListing()->searchByKeyword($preparedKeywords);

列表

用于处理预取/缓存的列表数据的主控制器。

Swagger文档

(new GetRETS($customerKey))->getListing();

这是检索缓存的列表的主要入口点。使用此入口点将拉取从您的MLS预取的数据。

优势

  • 更快的数据检索 (数据的检索无需与MLS RETS提供商协商和翻译)
  • 更高级的搜索 (由于是预取的数据,我们不受DMQL查询或其他RETS提供商限制的限制)
  • 即使在MLS维护时也能工作

缺点

  • 数据不是100%实时 (我们正在不断轮询MLS以获取新数据,但新列表可能需要一小时左右才会显示出来,并且我们每24小时刷新一次每个列表)

searchByKeyword

按关键词搜索列表

Swagger文档

(new GetRETS($customerKey))->getListing()->searchByKeyword($preparedKeywords);

一个简单的搜索,将检索通过关键词搜索的列表。

参数

keyword - 搜索的关键词

返回

一个包含CondensedListing的数组

[
  {
    "id": "string",
    "listingSourceURLSlug": "string",
    "listingTypeURLSlug": "string",
    "listingID": "string",
    "listingSource": 1,
    "listingType": 1,
    "address": "string",
    "baths": 0,
    "beds": 0,
    "listPrice": "string",
    "rawListPrice": 0,
    "providedBy": "string",
    "squareFeet": 0,
    "lot": "string",
    "acres": "string"
  }
]

search

高级搜索

Swagger文档

(new GetRETS($customerKey))->getListing()->search($keywords, $extra, $maxPrice, $minPrice, $beds, $baths, $includeResidential, $includeLand, $includeCommercial);

一个更高级的搜索,通过可选参数检索受限制的列表。

参数

keyword - 搜索的关键词

extra - (可选) 以逗号分隔的额外搜索词列表(高尔夫,湖,等...)

maxPrice - (可选) 列表价格的最大值

minPrice - (可选) 列表价格的最小值

beds - (可选) 需要的最小床数

baths - (可选) 需要的最小浴室数

includeResidential - (可选) 包含住宅列表

includeLand - (可选) 包含土地列表

includeCommercial - (可选) 包含商业列表

注意 - 如果您没有设置任何 include 参数,则将假定所有参数都已设置。

返回

一个包含CondensedListing的数组

[
  {
    "id": "string",
    "listingSourceURLSlug": "string",
    "listingTypeURLSlug": "string",
    "listingID": "string",
    "listingSource": 1,
    "listingType": 1,
    "address": "string",
    "baths": 0,
    "beds": 0,
    "listPrice": "string",
    "rawListPrice": 0,
    "providedBy": "string",
    "squareFeet": 0,
    "lot": "string",
    "acres": "string"
  }
]

details

获取特定列表的详细信息

Swagger文档

(new GetRETS($customerKey))->getListing()->details($listingSource, $listingType, $listingId);

检索特定列表的更详细/非压缩的详细信息。您通常将搜索函数返回的值用作参数。

参数

listingSource - MLS 列表源的字符串表示(参见 FeedsModels.Models.enumListingSource)

listingType - 列表类型的字符串表示,例如住宅、土地等。(参见 FeedsModels.Models.enumListingType)

listingId - 要检索的列表的唯一 ID

返回

单个 Listing

{
  "description": "string",
  "features": [
    "string"
  ],
  "photoCount": 0,
  "id": "string",
  "listingSourceURLSlug": "string",
  "listingTypeURLSlug": "string",
  "listingID": "string",
  "listingSource": 1,
  "listingType": 1,
  "address": "string",
  "baths": 0,
  "beds": 0,
  "listPrice": "string",
  "rawListPrice": 0,
  "providedBy": "string",
  "squareFeet": 0,
  "lot": "string",
  "acres": "string"
}

imageUrl

获取用于显示图像的 URL

Swagger文档

(new GetRETS($customerKey))->getListing()->imageUrl($listingSource, $listingType, $listingId, $photoId, $width = null, $height = null);

检索与特定列表关联的图像(图像)。

特别说明 - 虽然宽度和高度参数是可选的,但使用它们指定合适的图像大小将提高您网站渲染速度,降低下载完整尺寸图像的需要。

此外,获取第一张照片($photoId = 0)是显示缩略图的建议策略。

参数

listingSource - MLS 列表源的字符串表示(参见 FeedsModels.Models.enumListingSource)

listingType - 列表类型的字符串表示,例如住宅、土地等。(参见 FeedsModels.Models.enumListingType)

listingId - 要检索的列表的唯一 ID

photoId - 要检索的图片的零基索引(参见列表详细信息中返回的 photoCount)。

width - 用于调整照片大小的宽度

height - 用于调整照片大小的长度

返回

指定图像的 URL

RETSListing

使用 RETS 处理 MLS 中包含的实时数据的主控制器

Swagger文档

(new GetRETS($customerKey))->getRETSListing();

这是从 MLS 通过 RETS 获取 实时 列表数据的主要入口点

优势

  • 数据将立即从 MLS RETS 服务器查询

缺点

  • 比缓存方法慢一点。(数据已转换为 DMQL 并从第三方服务器检索)
  • 关键字搜索应用的 "模糊逻辑" 较少,因为我们仅限于通过 MLS 定义的 DMQL 类进行搜索。
  • 如果您的 MLS 因维护而关闭,则无法检索结果。

特别说明 - 用于从缓存数据中获取数据的所有相同函数(参见上面的列表控制器函数)也适用于此 API 控制器,因为它们具有相同的签名,只是它们将直接访问 RETS 服务器。

searchByKeyword

按关键词搜索列表

Swagger文档

(new GetRETS($customerKey))->getRETSListing()->searchByKeyword($preparedKeywords);

一个简单的搜索,将检索通过关键词搜索的列表。

参数

keyword - 搜索的关键词

返回

一个包含CondensedListing的数组

[
  {
    "id": "string",
    "listingSourceURLSlug": "string",
    "listingTypeURLSlug": "string",
    "listingID": "string",
    "listingSource": 1,
    "listingType": 1,
    "address": "string",
    "baths": 0,
    "beds": 0,
    "listPrice": "string",
    "rawListPrice": 0,
    "providedBy": "string",
    "squareFeet": 0,
    "lot": "string",
    "acres": "string"
  }
]

search

高级搜索

Swagger文档

(new GetRETS($customerKey))->getRETSListing()->search($keywords, $extra, $maxPrice, $minPrice, $beds, $baths, $includeResidential, $includeLand, $includeCommercial);

一个更高级的搜索,通过可选参数检索受限制的列表。

参数

keyword - 搜索的关键词

extra - (可选) 以逗号分隔的额外搜索词列表(高尔夫,湖,等...)

maxPrice - (可选) 列表价格的最大值

minPrice - (可选) 列表价格的最小值

beds - (可选) 需要的最小床数

baths - (可选) 需要的最小浴室数

includeResidential - (可选) 包含住宅列表

includeLand - (可选) 包含土地列表

includeCommercial - (可选) 包含商业列表

注意 - 如果您没有设置任何 include 参数,则将假定所有参数都已设置。

返回

一个包含CondensedListing的数组

[
  {
    "id": "string",
    "listingSourceURLSlug": "string",
    "listingTypeURLSlug": "string",
    "listingID": "string",
    "listingSource": 1,
    "listingType": 1,
    "address": "string",
    "baths": 0,
    "beds": 0,
    "listPrice": "string",
    "rawListPrice": 0,
    "providedBy": "string",
    "squareFeet": 0,
    "lot": "string",
    "acres": "string"
  }
]

details

获取特定列表的详细信息

Swagger文档

(new GetRETS($customerKey))->getRETSListing()->details($listingSource, $listingType, $listingId);

检索特定列表的更详细/非压缩的详细信息。您通常将搜索函数返回的值用作参数。

参数

listingSource - MLS 列表源的字符串表示(参见 FeedsModels.Models.enumListingSource)

listingType - 列表类型的字符串表示,例如住宅、土地等。(参见 FeedsModels.Models.enumListingType)

listingId - 要检索的列表的唯一 ID

返回

单个 Listing

{
  "description": "string",
  "features": [
    "string"
  ],
  "photoCount": 0,
  "id": "string",
  "listingSourceURLSlug": "string",
  "listingTypeURLSlug": "string",
  "listingID": "string",
  "listingSource": 1,
  "listingType": 1,
  "address": "string",
  "baths": 0,
  "beds": 0,
  "listPrice": "string",
  "rawListPrice": 0,
  "providedBy": "string",
  "squareFeet": 0,
  "lot": "string",
  "acres": "string"
}

imageUrl

获取用于显示图像的 URL

Swagger文档

(new GetRETS($customerKey))->getRETSListing()->imageUrl($listingSource, $listingType, $listingId, $photoId, $width = null, $height = null);

检索与特定列表关联的图像(图像)。

特别说明 - 虽然宽度和高度参数是可选的,但使用它们指定合适的图像大小将提高您网站渲染速度,降低下载完整尺寸图像的需要。

此外,获取第一张照片($photoId = 0)是显示缩略图的建议策略。

参数

listingSource - MLS 列表源的字符串表示(参见 FeedsModels.Models.enumListingSource)

listingType - 列表类型的字符串表示,例如住宅、土地等。(参见 FeedsModels.Models.enumListingType)

listingId - 要检索的列表的唯一 ID

photoId - 要检索的图片的零基索引(参见列表详细信息中返回的 photoCount)。

width - 用于调整照片大小的宽度

height - 用于调整照片大小的长度

返回

指定图像的 URL

executeDMQL

通过 DMQL 查询返回 MLS 结果

Swagger文档

(new GetRETS($customerKey))->getRETSListing()->executeDMQL($query, $feedName, $listingType);

这是一个强大的功能,它将在 RETS MLS 服务器上执行原始 DMQL 并以序列化对象的形式返回结果。

特别说明 - 这些结果不会以类似于其他列表详细搜索的方式返回。这些结果以 MLS RETS 服务器返回的格式返回。如果您希望以 转换 格式检索列表,请使用 getListingsByDMQL。

参数

query - 要在 MLS RETS 服务器上执行的 DMQL

feedName - 要运行查询的源名称

listingType - 列表类型的字符串表示,例如住宅、土地等。(参见 FeedsModels.Models.enumListingType)

返回

包含查询成功或失败以及检索到的原始序列化结果的封装响应。这些序列化结果将因 feedName 和 listingType 而异。

{
  "success": true,
  "code": 0,
  "message": "string",
  "data": [
    {
      "className": "string"
    }
  ]
}

getListingsByDMQL

通过 DMQL 查询获取已翻译的列表

Swagger文档

(new GetRETS($customerKey))->getRETSListing()->getListingsByDMQL($query, $feedName, $listingType);

这是一个强大的功能,它将在 RETS MLS 服务器上执行原始 DMQL 并将结果作为序列化对象返回。它与 executeDMQL 类似,但是此功能将 转换 数据以与检索列表详细信息的其他方法返回的格式相同。

参数

query - 要在 MLS RETS 服务器上执行的 DMQL

feedName - 要运行查询的源名称

listingType - 列表类型的字符串表示,例如住宅、土地等。(参见 FeedsModels.Models.enumListingType)

返回

包含查询成功或失败以及检索到的原始序列化结果的封装响应。

{
  "success": true,
  "code": 0,
  "message": "string",
  "data": [
    {
      "description": "string",
      "features": [
        "string"
      ],
      "photoCount": 0,
      "id": "string",
      "listingSourceURLSlug": "string",
      "listingTypeURLSlug": "string",
      "listingID": "string",
      "listingSource": 1,
      "listingType": 1,
      "address": "string",
      "baths": 0,
      "beds": 0,
      "listPrice": "string",
      "rawListPrice": 0,
      "providedBy": "string",
      "squareFeet": 0,
      "lot": "string",
      "acres": "string"
    }
  ]
}

Geocoding

处理地址的主要控制器

Swagger文档

(new GetRETS($customerKey))->getGeocoding();

本控制器是计划增长的一个区域,旨在提供更高级的地理空间搜索以用于列表数据。目前,它用于将关键词解析成更多用于搜索的地理编码数据。

如果您提供与您的账户关联的Google地理编码密钥,您可以使用这些方法。

parseGoogleResults

翻译Google返回的结果

Swagger文档

(new GetRETS($customerKey))->getGeocoding()->parseGoogleResults($googleResults);

此功能将解析Google服务返回的结果,并将它们转换成更适用于搜索列表数据的统一格式。

参数

googleResults - 来自Google地理编码器.geocode的结果

[
  {
    "address_components": [
      {
        "long_name": "string",
        "short_name": "string",
        "types": [
          "string"
        ]
      }
    ],
    "formatted_address": "string",
    "geometry": {
      "bounds": {
        "south": 0,
        "west": 0,
        "north": 0,
        "east": 0
      },
      "location": {
        "lat": 0,
        "lng": 0
      },
      "location_type": "string",
      "viewport": {
        "south": 0,
        "west": 0,
        "north": 0,
        "east": 0
      }
    },
    "place_id": "string",
    "types": [
      "string"
    ]
  }
]

返回

作为AddressDetail翻译的数据。

[
  {
    "streetNumber": "string",
    "street": "string",
    "city": "string",
    "county": "string",
    "state": "string",
    "stateAbbreviation": "string",
    "country": "string",
    "postalCode": "string",
    "latitude": 0,
    "longitude": 0,
    "formattedAddress": "string"
  }
]

googleGeocode

以自由格式文本输入的地理编码地址

Swagger文档

(new GetRETS($customerKey))->getGeocoding()->googleGeocode($address);

此功能将接收一个关键词,并通过Google地理编码服务运行它,然后返回翻译后的结果。

参数

address - 要地理编码的自由格式文本(预期这是一个可能的地址)

返回

作为AddressDetail翻译的数据。

[
  {
    "streetNumber": "string",
    "street": "string",
    "city": "string",
    "county": "string",
    "state": "string",
    "stateAbbreviation": "string",
    "country": "string",
    "postalCode": "string",
    "latitude": 0,
    "longitude": 0,
    "formattedAddress": "string"
  }
]

辅助函数

以下方法不是API端点,但可以在SDK中用于辅助功能。

setLimit

用于限制返回的结果

(new GetRETS($customerKey))->getListing()->setLimit(10)->searchByKeyword($preparedKeywords);

此属性用于限制返回的结果数量。(默认为null,表示无限制)

setSortBy / setReverseSort

用于对返回的结果进行排序/排序

(new GetRETS($customerKey))->getListing()->setSortBy("providedBy")->setReverseSort(true)->searchByKeyword($preparedKeywords);

setSortBy

此属性用于设置按哪个列对数据进行排序。

setReverseSort

此属性用于设置按sortBy列排序的顺序(升序/降序)。(默认为false,表示升序)

默认情况下,列表将按价格从低到高排序。如果您想更改默认值,可以修改以下行。

private $sortBy = "rawListPrice";

private $reverseSort = false;

如果您想在应用的其他任何部分手动排序列表,可以使用setSortBy和setReverseSort方法,如以下语法所示。

$listings = $getRets->getListing()->setSortBy("providedBy")->setReverseSort(true)->searchByKeyword($preparedKeywords);

进一步阅读

关于API本身的更多信息可以在Swagger UI(http://getrets.net/swagger/)中找到。