SDK engine

Google Local Services

Google Local Services provider search and provider details.

engine: google_local_services TS: XylopSearchEngines.GoogleLocalServices JS: XylopSearchEngines.GoogleLocalServices C#: XylopSearchEngines.GoogleLocalServices Python: XylopSearchEngines.GOOGLE_LOCAL_SERVICES PHP: XylopSearchEngines::GOOGLE_LOCAL_SERVICES Ruby: XylopApiClient::Engines::GOOGLE_LOCAL_SERVICES Java: XylopSearchEngines.GOOGLE_LOCAL_SERVICES Kotlin: XylopSearchEngines.GOOGLE_LOCAL_SERVICES Swift: XylopSearchEngines.googleLocalServices Dart: XylopSearchEngines.googleLocalServices C++: xylop::api::engines::google_local_services Go: xylop.EngineGoogleLocalServices GET /search
TypeScript пример

Вызов через @xylop/api-client-typescript

import { XylopSearchClient, XylopSearchEngines } from "@xylop/api-client-typescript";

interface SearchResponse {
  [key: string]: unknown;
}

const client = new XylopSearchClient({
  apiKey: "YOUR_API_KEY"
});

const response = await client.search<SearchResponse>(
  XylopSearchEngines.GoogleLocalServices,
  {
    q: "plumber",
    data_cid: "data cid",
    cid: "cid",
    bid: "bid",
    pid: "pid",
  });

TypeScript SDK написан на TypeScript, генерирует `.d.ts`, поддерживает generic response type и работает через `fetch`.

JavaScript пример

Вызов через @xylop/api-client

import { XylopSearchClient, XylopSearchEngines } from "@xylop/api-client";

const client = new XylopSearchClient({
  apiKey: "YOUR_API_KEY"
});

const response = await client.search(
  XylopSearchEngines.GoogleLocalServices,
  {
    q: "plumber",
    data_cid: "data cid",
    cid: "cid",
    bid: "bid",
    pid: "pid",
  });

JavaScript SDK работает в Node.js 18+ и современных браузерах через `fetch`; TypeScript declarations входят в npm package.

C# пример

Вызов через XylopSearchClient

using Xylop.Api.Client;

var client = new XylopSearchClient(new HttpClient(), "YOUR_API_KEY");

using var response = await client.SearchJsonAsync(
    XylopSearchEngines.GoogleLocalServices,
    new Dictionary<string, string?>
    {
        ["q"] = "plumber",
        ["data_cid"] = "data cid",
        ["cid"] = "cid",
        ["bid"] = "bid",
        ["pid"] = "pid",
    });

Для типизированного режима используйте `SearchAsync<TResponse>` и response-модель из `Xylop.Logic.SerpApiResponses.*`, которая входит в пакет C# SDK.

Python пример

Вызов через xylop-api-client

from xylop_api_client import XylopSearchClient, XylopSearchEngines

client = XylopSearchClient("YOUR_API_KEY")

response = client.search(
    XylopSearchEngines.GOOGLE_LOCAL_SERVICES,
    {
        "q": "plumber",
        "data_cid": "data cid",
        "cid": "cid",
        "bid": "bid",
        "pid": "pid",
    },
)

Python SDK возвращает JSON как обычные `dict`/`list` и не требует runtime-зависимостей.

PHP пример

Вызов через xylop/api-client

<?php

use Xylop\Api\Client\XylopSearchClient;
use Xylop\Api\Client\XylopSearchEngines;

$client = new XylopSearchClient('YOUR_API_KEY');

$response = $client->search(
    XylopSearchEngines::GOOGLE_LOCAL_SERVICES,
    [
        'q' => 'plumber',
        'data_cid' => 'data cid',
        'cid' => 'cid',
        'bid' => 'bid',
        'pid' => 'pid',
    ]
);

PHP SDK использует стандартные stream wrappers, возвращает decoded JSON array и не требует runtime-зависимостей.

Ruby пример

Вызов через xylop-api-client

require "xylop_api_client"

client = XylopApiClient::Client.new(api_key: "YOUR_API_KEY")

response = client.search(
  XylopApiClient::Engines::GOOGLE_LOCAL_SERVICES,
  {
    "q" => "plumber",
    "data_cid" => "data cid",
    "cid" => "cid",
    "bid" => "bid",
    "pid" => "pid",
  }
)

Ruby SDK использует стандартные `net/http`, `json` и возвращает JSON как обычные Hash/Array значения.

Java пример

Вызов через xylop-api-client

import java.util.Map;
import ru.xylop.api.client.XylopSearchClient;
import ru.xylop.api.client.XylopSearchEngines;

var client = new XylopSearchClient("YOUR_API_KEY");

String responseJson = client.searchJson(
    XylopSearchEngines.GOOGLE_LOCAL_SERVICES,
    Map.of(
        "q", "plumber",
        "data_cid", "data cid",
        "cid", "cid",
        "bid", "bid",
        "pid", "pid"
    ));

Java SDK использует `java.net.http.HttpClient`, возвращает JSON-строку и не требует runtime-зависимостей.

Kotlin пример

Вызов через xylop-api-kotlin-client

import ru.xylop.api.kotlin.XylopSearchClient
import ru.xylop.api.kotlin.XylopSearchEngines

val client = XylopSearchClient("YOUR_API_KEY")

val responseJson = client.searchJson(
    XylopSearchEngines.GOOGLE_LOCAL_SERVICES,
    mapOf(
        "q" to "plumber",
        "data_cid" to "data cid",
        "cid" to "cid",
        "bid" to "bid",
        "pid" to "pid",
    ),
)

Kotlin SDK использует JVM `HttpClient`, возвращает JSON-строку и оставляет JSON-маппинг приложению.

Swift пример

Вызов через XylopApiClient

import XylopApiClient

let client = XylopSearchClient(apiKey: "YOUR_API_KEY")

let response = try await client.searchJSON(
    engine: XylopSearchEngines.googleLocalServices,
    parameters: [
        "q": "plumber",
        "data_cid": "data cid",
        "cid": "cid",
        "bid": "bid",
        "pid": "pid",
    ]
)

Swift SDK использует Foundation `URLSession`, поддерживает async/await и возвращает Data, JSONSerialization values или caller-owned Decodable models.

Dart пример

Вызов через xylop_api_client

import 'package:xylop_api_client/xylop_api_client.dart';

Future<void> main() async {
  final client = XylopSearchClient('YOUR_API_KEY');

  final response = await client.search(
    XylopSearchEngines.googleLocalServices,
    <String, Object?>{
      'q': 'plumber',
      'data_cid': 'data cid',
      'cid': 'cid',
      'bid': 'bid',
      'pid': 'pid',
    },
  );

  print(response);
}

Dart SDK использует `dart:io`, возвращает decoded JSON или raw response text и не требует runtime-зависимостей.

C++ пример

Вызов через Xylop.Api.Cpp

#include <xylop/api/client.hpp>
#include <xylop/api/curl_transport.hpp>

int main()
{
    xylop::api::search_client client(
        "YOUR_API_KEY",
        xylop::api::curl_transport);

    auto response_json = client.search_text(
        xylop::api::engines::google_local_services,
        {
            {"q", "plumber"},
            {"data_cid", "data cid"},
            {"cid", "cid"},
            {"bid", "bid"},
            {"pid", "pid"},
        });

    return 0;
}

C++ SDK имеет header-only C++17 core, принимает transport callback и может использовать optional libcurl adapter `xylop::api::curl_transport`.

Go пример

Вызов через Xylop.Api.Go

package main

import (
    "context"
    "log"

    xylop "github.com/Leonid-Vizel/Xylop.AdminPanel/src/Xylop.Api.Go"
)

func main() {
    client, err := xylop.NewClient("YOUR_API_KEY")
    if err != nil {
        log.Fatal(err)
    }

    var response map[string]any
    err = client.SearchJSON(
        context.Background(),
        xylop.EngineGoogleLocalServices,
        xylop.Params(map[string]string{
            "q": "plumber",
            "data_cid": "data cid",
            "cid": "cid",
            "bid": "bid",
            "pid": "pid",
        }),
        &response)
    if err != nil {
        log.Fatal(err)
    }
}

Go SDK возвращает raw JSON bytes или декодирует ответ в пользовательскую структуру, `map[string]any` либо другой target.

Endpoint

HTTP контракт

URL
https://api.xylop.ru/search
Engine
google_local_services
API key
Передается SDK автоматически из настроек клиента.
Входные параметры

Параметры запроса

Параметр Тип Обязателен Значение Описание
api_key SDK string Да Ключ Xylop API. В SDK задается один раз в настройках или конструкторе клиента.
engine SDK string Да google_local_services Google Local Services engine.
q string Нет plumber Service query for search mode.
data_cid string Нет data cid Location/service context id.
cid string Нет cid Provider cid for place mode.
bid string Нет bid Provider bid for place mode.
pid string Нет pid Provider pid for place mode.
Выходные параметры

Поля ответа

Поле Тип Источник Описание
search_metadata object пример ответа Метаданные запроса: статус, идентификатор, время выполнения и служебная информация провайдера.
search_parameters object пример ответа Нормализованные параметры, с которыми upstream-поиск выполнил запрос.
local_results array пример ответа Локальные результаты: адреса, координаты, рейтинги, телефоны и ссылки.
JSON

Пример ответа

{
  "search_metadata": {
    "status": "Success",
    "google_local_services_url": "https://www.google.com/localservices/prolist"
  },
  "search_parameters": {
    "engine": "google_local_services",
    "q": "plumber",
    "data_cid": "..."
  },
  "local_results": [
    {
      "position": 1,
      "title": "Example Plumbing",
      "rating": 4.8,
      "reviews": 122,
      "phone": "(555) 010-0000"
    }
  ]
}