가장 가까운 정거장을 검색하는 무료 API를 공개해 봤습니다.
개요
다음 페이지에는 API 설명서와 사양이 있습니다. 확인하십시오.
또 간단한 시연으로 현재 위치에서 가장 가까운 역을 검색하는 앱이 공개됐으니 스마트폰으로 시도해 보세요.
다음 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가 이미 존재합니다. 아래와 같이 열거할 수 있습니다.
이것은 실제로 무료로 사용하는 표준으로 이 서비스가 없으면 무료 서비스가 없다.
다른 선택지를 만드는 것도 중요하다고 생각해서 이번에 개발해 공개했다.
구조
구성, 기술 창고는 다음과 같다.
마스터 시스템
마스터 시스템은 Laavel9을 사용합니다.
개인 사업주의 대학생 신분으로 빠른 개발과 유지보수의 편의를 감안하면 나무랄 데 없는 라벨이 됐다.
PHP 버전의 개발 환경과 공식 서버는 모두 8.1 시스템입니다.
(처음에는 Lumen이 하고 싶었지만 추천하지 않았어요.)
데이터베이스
이번에는 다른 서비스와의 교란과 사용 가능한 담보, 고속 처리를 방지하기 위해 개인 추천역 정보 데이터베이스인 DBAS[MongodB Atlas]를 활용했다.
말 그대로 본 서비스는 문서 의향 데이터베이스인 MongodB를 저장하는 서비스로 공유 메모리 500MB의 Cluster를 무료로 사용하는 것을 추천합니다.
DBAS를 사용하여 데이터베이스 유지 관리 비용을 절감합니다.
역 정보 데이터베이스역 데이터.선생님의 최신 데이터를 혼자서 다시 포맷하여 저장한다.
응답 속도 30ms 향상
이번 개발에서는 고속화를 중시했다.
지리 공간 인덱스
MongoDB에 저장된 역 정보의 위치 정보에 지리 공간 인덱스를 추가하여 구형 모형을 사용한 가장 가까운 역을 효율적이고 최상의 논리로 찾습니다 (계획)
좀 낡았지만 아래의 정보를 참고하였다
Laravel Octane
일반 개발·시행 시에도 응답 속도가 50ms 정도에 불과해 빠르지만 더 빠른 의욕이 생기고, 라벨의 고속화 중간부품 구동 패키지인'라벨옥타네'도 활용했다.
가져오기 단계
그 결과 ab테스트는 50ms→29ms의 고속화를 실현했다.
실제로 아파치의 역방향 에이전트를 사용하기 때문에 실제로는 40ms 정도로 떨어지지만 그래도 빠를 것 같아요.
이상, 대체로 소개하였다.꼭 쓰셔야 한다면 다행입니다!
※ 슬라이드 소개
Reference
이 문제에 관하여(가장 가까운 정거장을 검색하는 무료 API를 공개해 봤습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/ichii731/articles/509ec8a06a9082텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)