Skip to content
/ NewsApi Public

A rest REST API for querying and retrieving scoped news and information.

License

Notifications You must be signed in to change notification settings

pwnipc/NewsApi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NewsApi

A rest REST API for querying and retrieving scoped news and information.

API Features

  1. Users can create departments.
  2. Users can create general news
  3. Users can create department news
  4. Users can see information/ properties of other users
  5. Users can see all the users in a deartment as well as the news in the department
  6. Users can post news relating to a department

Dependencies

1. [junit-jupiter-api] 'org.junit.jupiter:junit-jupiter-api:5.8.1'
2. [junit-jupiter-engine] 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
3. [spark-core] 'com.sparkjava:spark-core:2.9.3'
4. [slf4j-simple] 'org.slf4j:slf4j-simple:1.7.32'
5. [gson] 'com.google.code.gson:gson:2.8.9'
6. [sql2o]  group: 'org.sql2o', name: 'sql2o', version: '1.5.4'
7. [postgresql] group: 'org.postgresql', name: 'postgresql', version: '42.2.2'    

Getting Started

1. git clone https://github.com/Chal13W1zz/NewsApi.git

2. cd NewsApi

3. edit postgresql username and password in App.java 

4. run psql < create.sql in the project root to create the database

5. gradle run 

Tests

1. cd NewsApi
2. gradle test

API Endpoints

EndPoint Functionality
POST /departments/new Create a new department
GET /departments View departments
POST /GeneralNews/new Post Generel News
GET /news/articles/posts View all general news
POST /news/:departmentId/new Create department scoped news
GET /news/:departmentId View department scoped news
POST /users/new Create a new uaser
GET /users View created users

Request & Response examples

Request curl

curl --location --request POST 'https://newsapi.up.railway.app/departments/new' \
--header 'Content-Type: application/json' \
--data-raw '{
    "departmentName": "Tech",
    "departmentDescription": "It'\''s all about tech",
    "employees": 20
}'

Response (application/json)

{
    "id": 1,
    "departmentName": "Tech",
    "departmentDescription": "It's all about tech",
    "employees": 20
}

Limitations

  1. The API only responds with JSON

Contribution

  1. Fork it! 🍴
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git add -A && git commit -m 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request

About

A rest REST API for querying and retrieving scoped news and information.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages