Shell Script, Docker 및 Laravel을 사용한 간단한 API
Docker 버전은 18.00보다 커야 합니다.
API 프로젝트 작업을 위한 간단한 단계를 따르세요.
저장소 복제
git clone https://github.com/gazra-labs/laravel-docker-apis.git
cd laravel-docker-apis
start.sh
파일을 실행하면 파일이 다음 명령을 실행합니다.
위의 start.sh 파일은 다음 명령을 실행합니다.
에이. .env 파일 복사
cp .env.example .env
.env 파일에 Google API 키를 입력할 수 있습니다.
비. Docker를 시작하고 빌드하기
docker-compose down -v && docker-compose build && docker-compose up -d
기음. 디렉토리에 작곡가를 설치하려면
docker-compose exec laravel-app composer install
디. 데이터베이스를 Docker로 마이그레이션하려면
docker-compose exec laravel-app php artisan key:generate
docker-compose exec laravel-app php artisan migrate --seed
이자형. API 문서 생성 중
docker-compose exec laravel-app php artisan l5-swagger:generate
에프. 작업 디렉토리 URL을 확인하려면
docker ps -a
g. PHPUnit 테스트 수행
sleep 120
docker exec laravel-app ./vendor/bin/phpunit
URL을 누르면 작업 중인 프로젝트를 찾을 수 있습니다. 작업 URL은 http://0.0.0.0:8000입니다.
서로 다른 메소드를 가진 3가지 API가 있습니다. 주문을 나열, 생성 및 업데이트하려면
매개변수 | 가치 | 비고 |
---|---|---|
URL | 0.0.0.0:8000 | 현재 작업 URL을 확인하려면 docker ps -a 확인하세요. |
API 경로 | {URL} | |
종료점 | {URL}/orders?page=:page&limit=:limit | 목록 주문의 예 |
예 전체 URI | http://0.0.0.0:8000/api/orders?page=:page&limit=:limit | |
API 문서 | {URL}/api/documentation | |
코드 적용 범위 | {URL}/CodeCoverage/ |
목록 주문 API:
이름 | 가치 |
---|---|
종료점 | {URL}/orders?page=:page&limit=:limit |
방법 | 얻다 |
요청된 JSON | JSON 본문 없음 |
응답 JSON
[
{
"id": 1,
"distance": 10636,
"status": "UNASSIGNED"
},
{
"id": 2,
"distance": 13634,
"status": "UNASSIGNED"
},
...
]
주문 생성:
이름 | 가치 |
---|---|
종료점 | {URL}/주문 |
방법 | 우편 |
요청된 JSON
{
"origin": ["25.3260412","77.4978736"],
"destination": ["25.127270", "76.855173"]
}
응답 JSON:
{
"id": 51,
"distance": 12378.83,
"status": "UNASSIGNED"
}
업데이트 순서:
이름 | 가치 |
---|---|
종료점 | {URL}/주문/{id} |
방법 | 반점 |
요청된 JSON
{
"status": "TAKEN"
}
응답 JSON
{
"status": "SUCCESS"
}
PHP 단위 테스트를 테스트하려면
docker exec laravel-app ./vendor/bin/phpunit
devuser를 사용하여 컨테이너에서 작업하려면...
docker exec -it laravel-app bash -c "sudo -u devuser /bin/bash"
devuser를 사용하여 컨테이너의 mysql 서버에서 작업하려면.. (비밀번호 = 123456)
docker exec -it mysql-db bash -c "mysql -u admin -psecret -p"
빌드가 작동하지 않으면 다음 명령을 시도해 보십시오.
모든 docker 시스템을 제거하고 새로 고치려면 docker system prune -a
모든 작업 및 unsed 컨테이너를 중지하려면 docker stop $(docker ps -a -q)
작동 중이거나 사용되지 않은 모든 컨테이너를 제거하려면 docker rm $(docker ps -a -q)
로컬에서 이미지를 빌드하려면 빌드를 시작하고 캐시 인수 없음 docker-compose build --no-cache && docker-compose up -d && docker-compose logs -f
사용합니다.