Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rzaf/movie-review-api
movie reviewing api with Laravel
https://github.com/rzaf/movie-review-api
imdb-clone movie-rating-app
Last synced: 8 days ago
JSON representation
movie reviewing api with Laravel
- Host: GitHub
- URL: https://github.com/rzaf/movie-review-api
- Owner: rzaf
- License: mit
- Created: 2024-10-11T09:50:24.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2024-12-22T09:31:30.000Z (10 days ago)
- Last Synced: 2024-12-22T10:26:15.644Z (10 days ago)
- Topics: imdb-clone, movie-rating-app
- Language: PHP
- Homepage:
- Size: 476 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# movie-review-api
media rating rest api using laravel framework
## Build
- clone repository `git clone https://github.com/rzaf/movie-review-api.git`
- cd to directory `cd movie-review-api`
- create .env file and configure your database `cp .env.example .env`
- install dependencies `composer install`
- genereate new keys `php artisan key:generate`
- run migrations and seed database `php artisan migrate --seed`
- run server `php artisan serve`
- visit `/api/documentation` route for swagger docs## API Endpoints
protected routes require authentication with api token.
admin routes require authenticated user to be admin .#### Users
| type | url |protected|admin |
|------|------------------------------------|-------|-------|
| GET |`api/users` |✗|✗|
| POST |`api/users/` |✗|✗|
| POST |`api/users/login` |✗|✗|
| GET |`api/users/{username}` |✗|✗|
| PUT |`api/users/{username}` |✓|✗|
|DELETE|`api/users/{username}` |✓|✗|#### Categories
| type | url |protected|admin|
|------|------------------------------------|-------|-------|
| GET |`api/categories` |✗|✗|
| POST |`api/categories/` |✓|✓|
| GET |`api/categories/{name}` |✗|✗|
| PUT |`api/categories/{name}` |✓|✓|
|DELETE|`api/categories/{name}` |✓|✓|#### People
| type | url |protected|admin|
|------|------------------------------------|-------|-------|
| GET |`api/people` |✗|✗|
| GET |`api/people/{url}` |✗|✗|
| GET |`api/people/{url}/medias` |✗|✗|
| POST |`api/people/` |✓|✓|
| PUT |`api/people/{url}` |✓|✓|
|DELETE|`api/people/{url}` |✓|✓|
| GET |`api/people/{url}/following` |✓|✗|
|DELETE|`api/people/{url}/following` |✓|✗|#### Medias
| type | url |protected|admin|
|------|------------------------------------------|-------|-------|
| GET |`api/medias` |✗|✗|
| GET |`api/medias/{url}` |✗|✗|
| POST |`api/medias` |✓|✓|
| PUT |`api/medias/{url}` |✓|✓|
|DELETE|`api/medias/{url}` |✓|✓|
| POST |`api/medias/{url}/genres/{name}` |✓|✓|
|DELETE|`api/medias/{url}/genres/{name}` |✓|✓|
| POST |`api/medias/{url}/kewords/{name}` |✓|✓|
|DELETE|`api/medias/{url}/kewords/{name}` |✓|✓|
| POST |`api/medias/{url}/languages/{name}` |✓|✓|
|DELETE|`api/medias/{url}/languages/{name}` |✓|✓|
| POST |`api/medias/{url}/countries/{name}` |✓|✓|
|DELETE|`api/medias/{url}/countries/{name}` |✓|✓|
| POST |`api/medias/{url}/companies/{name}` |✓|✓|
|DELETE|`api/medias/{url}/companies/{name}` |✓|✓|
| POST |`api/medias/{url}/people/{person_url}` |✓|✓|
|DELETE|`api/medias/{url}/people/{person_url}` |✓|✓|#### Reviews
| type | url |protected|admin|
|------|------------------------------------------|-------|-------|
| GET |`api/reviews/{review_id}` |✗|✗|
|DELETE|`api/reviews/{review_id}` |✓|✗|
| PUT |`api/reviews/{review_id}` |✓|✗|
| POST |`api/medias/{url}/reviews` |✓|✗|
| GET |`api/medias/{url}/reviews` |✗|✗|#### Replies
| type | url |protected|admin|
|------|------------------------------------------|-------|-------|
| GET |`api/replies/{reply_id}` |✗|✗|
|DELETE|`api/replies/{reply_id}` |✓|✗|
| PUT |`api/replies/{reply_id}` |✓|✗|
| POST |`api/replies` |✓|✗|
| GET |`api/reviews/{review_id}/replies` |✗|✗|
| GET |`api/replies/{reply_id}/replies` |✗|✗|#### Likes/Dislikes
| type | url |protected|admin|
|------|-----------------------------------------|-------|-------|
| POST |`api/medias/{url}/like` |✓|✗|
|DELETE|`api/medias/{url}/like` |✓|✗|
| POST |`api/reviews/{review_id}/like` |✓|✗|
|DELETE|`api/reviews/{review_id}/like` |✓|✗|
| POST |`api/replies/{reply_id}/like` |✓|✗|
|DELETE|`api/replies/{reply_id}/like` |✓|✗|#### Files
| type | url |protected|admin|
|------|-----------------------------------------|-------|-------|
| POST |`api/files/photos` |✓|✓|
|DELETE|`api/files/photos/{url}` |✓|✓|
| GET |`api/files/photos/{url}` |✗|✗|
| POST |`api/files/videos` |✓|✓|
|DELETE|`api/files/videos/{url}` |✓|✓|
| GET |`api/files/videos/{url}` |✗|✗|
| POST |`api/people/{url}/photo` |✓|✓|
|DELETE|`api/people/{url}/photo` |✓|✓|
| GET |`api/files/people-profile-photos/{url}` |✓|✓|