가장 가까운 정거장을 검색하는 무료 API를 공개해 봤습니다.

가장 가까운 정거장을 검색해 반납하는 API 서비스[NeaREST API]가 공개됐기 때문에 소개해드립니다.
  • 상업용 무료
  • 인증 제한 없음
  • 고속 응답
  • 최대 검색 건수 20건
  • 개요


    다음 페이지에는 API 설명서와 사양이 있습니다. 확인하십시오.
    https://station.ic731.net/docs/near
    또 간단한 시연으로 현재 위치에서 가장 가까운 역을 검색하는 앱이 공개됐으니 스마트폰으로 시도해 보세요.
    https://station.ic731.net/demo/nearest
    다음 JSON을 반환합니다.
    {
        "meta": {
            "status": "success"
        },
        "data": [
            {
                "station_id": 9930101,
                "station_name": "都庁前",
                "pref": "東京都",
                "post": "1600023",
                "address": "新宿区西新宿2-8-1",
                "location": [
                    139.69257,
                    35.690551
                ],
                "distance": 148
            },
            // 以降続く…
    

    창조적 동기


    가장 가까운 정거장을 검색하는 API가 이미 존재합니다. 아래와 같이 열거할 수 있습니다.
  • NAVITIME API
  • 역 및 웹서비스
  • HeartRails
  • 이 중 무료로 이용할 수 있는 것은 마지막 하트레일스 익스프레스 노선/역 이름/가장 가까운 역 데이터 서비스뿐이다.
    이것은 실제로 무료로 사용하는 표준으로 이 서비스가 없으면 무료 서비스가 없다.
    다른 선택지를 만드는 것도 중요하다고 생각해서 이번에 개발해 공개했다.

    구조


    구성, 기술 창고는 다음과 같다.

    마스터 시스템


    마스터 시스템은 Laavel9을 사용합니다.
    https://laravel.com
    개인 사업주의 대학생 신분으로 빠른 개발과 유지보수의 편의를 감안하면 나무랄 데 없는 라벨이 됐다.
    PHP 버전의 개발 환경과 공식 서버는 모두 8.1 시스템입니다.
    (처음에는 Lumen이 하고 싶었지만 추천하지 않았어요.)

    데이터베이스


    이번에는 다른 서비스와의 교란과 사용 가능한 담보, 고속 처리를 방지하기 위해 개인 추천역 정보 데이터베이스인 DBAS[MongodB Atlas]를 활용했다.
    말 그대로 본 서비스는 문서 의향 데이터베이스인 MongodB를 저장하는 서비스로 공유 메모리 500MB의 Cluster를 무료로 사용하는 것을 추천합니다.
    https://www.mongodb.com/ja-jp/atlas/database
    DBAS를 사용하여 데이터베이스 유지 관리 비용을 절감합니다.
    역 정보 데이터베이스역 데이터.선생님의 최신 데이터를 혼자서 다시 포맷하여 저장한다.

    응답 속도 30ms 향상


    이번 개발에서는 고속화를 중시했다.

    지리 공간 인덱스


    MongoDB에 저장된 역 정보의 위치 정보에 지리 공간 인덱스를 추가하여 구형 모형을 사용한 가장 가까운 역을 효율적이고 최상의 논리로 찾습니다 (계획)
    좀 낡았지만 아래의 정보를 참고하였다
    https://qiita.com/fetaro/items/7f110f18c6dd9ccd0c90
    https://gihyo.jp/dev/serial/01/mongodb/0009

    Laravel Octane


    일반 개발·시행 시에도 응답 속도가 50ms 정도에 불과해 빠르지만 더 빠른 의욕이 생기고, 라벨의 고속화 중간부품 구동 패키지인'라벨옥타네'도 활용했다.
    가져오기 단계
    https://0115765.com/archives/7350
    그 결과 ab테스트는 50ms→29ms의 고속화를 실현했다.
    실제로 아파치의 역방향 에이전트를 사용하기 때문에 실제로는 40ms 정도로 떨어지지만 그래도 빠를 것 같아요.
    이상, 대체로 소개하였다.꼭 쓰셔야 한다면 다행입니다!
    ※ 슬라이드 소개
    https://www.docswell.com/s/ichii731/ZNXYGK-nearest

    좋은 웹페이지 즐겨찾기