Base URL https://freela-dev.herokuapp.com/api
freeladev.com/api
{
"name": "SpaceBlog",
"description": "an website about astronomy",
"price": 3000,
"difficulty_level": "beginner",
"expiration_date": "12/12/2021 23:59",
"contractor": {"name": "Thiago Almeida",
"email":"thiagoi43@gmailcom",
"cnpj": "13.339.532/0001-09"}
}
freeladev.com/api/developers
{
"name": "Vitor Menezes",
"email": "menezes.vitor@mail.com",
"birthdate": "17/10/1990",
"technologies": [{"name": "python"}, {"name": "javascript"}]
}
freeladev.com/api/contractors
{
"name": "Pedro Musk",
"email": "pedro.space@mail.com",
"cnpj": "13.339.532/0001-09"
}
cnpj can be optional
{
"name": "Pedro Musk",
"email": "pedro.space@mail.com",
}
freeladev.com/api/login
Request
{
"email": "tiago90@gmail.com",
"password": "freela123"
}
Response
{
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTYzNDc3NzQ2OSwianRpIjoiN2ZmY2YwMmMtNmY5Zi00ZDdjLTgzNWMtNWRkMmNmMjQxODFhIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6eyJuYW1lIjoiYmlsbGllIiwiZW1haWwiOiJiaWxsaWVAZ21haWwuY29tIiwiYmlydGhkYXRlIjoiVGh1LCAxMiBEZWMgMjAwMiAwMzowMDowMCBHTVQifSwibmJmIjoxNjM0Nzc3NDY5LCJleHAiOjE2MzQ3NzgzNjl9.GuL7ZL3zwKDndeMDUGXYbInyJ1egt-dngY80TIIiQHo"
}
freeladev.com/api/developers/signup
Request
{
"name": "Kiko Solimões",
"email": "kidakdssxo@mail.com",
"password": "Nino2016*#",
"birthdate": "01/01/2012",
"technologies": [{"name": "python"},
{"name": "react"}]
}
Response
{
"name": "Thiago Camargo",
"email": "thiago.camargo@mail.com",
"birthdate": "07/07/1998",
"technologies": [{"name": "python"},
{"name": "react"}]
}
freeladev.com/api/developers/profile
Response
{
"name": "Thiago Camargo",
"email": "thiago.camargo@mail.com",
"birthdate": "07/07/1998",
"technologies": [{"name": "python"},
{"name": "react"}]
}
freeladev.com/api/developers/update
Can contain: "name", "email" and/or "birthdate" and/or "technologies" " Request "
{
"technologies": [{"name": "python"}, {"name": "react"}]
}
Response
{
"name": "Thiago Camargo",
"email": "thiago.camargo@mail.com.br",
"birthdate": "07/07/1998",
"technologies": [{"name": "python"},
{"name": "react"}]
}
if you want to patch the technologies list you need to request all the previous technologies along with the new one or any modification
freeladev.com/api/developers/delete
Response
NO CONTENT, 204
freeladev.com/api/contractors/signup
Request
{
"name": "Pedro Musk",
"email": "pedro.space@mail.com",
"cnpj": "13.339.532/0001-09",
"password": "Bertyt2017*#"
}
Response
{
"name": "Pedro Musk",
"email": "pedro.space@mail.com",
"cnpj": "13.339.532/0001-09"
}
freeladev.com/api/contractor/profile
Response
{
"name": "Pedro Musk",
"email": "pedro.space@mail.com",
"cnpj": "13.339.532/0001-09"
}
freeladev.com/api/contractor/update
Body json can contain: "name", "email" "cnpj" " Request "
{
"email": "pedro.space@mail.com.br"
}
Response
{
"name": "Pedro Musk",
"email": "pedro.space@mail.com.br",
"cnpj": "13.339.532/0001-09"
}
freeladev.com/api/contractor/delete
Response
NO CONTENT, 204
freeladev.com/api/jobs/create
Request
{
"name": "SpaceBlog",
"description": "a website about astronomy",
"price": 3000,
"difficulty_level": "beginner",
"expiration_date": "12/12/2021 23:59"
}
Response
{
"name": "SpaceBlog",
"description": "a website about astronomy",
"price": 3000,
"difficulty_level": "beginner",
"expiration_date": "12/12/2021 23:59",
"progress": null
}
freeladev.com/api/jobs/info?price=3000&difficulty=beginner
Response If it's a developer using the route it'll also return:
{
"id": 1,
"name": "SpaceBlog",
"description": "a website about astronomy",
"price": 3000.0,
"difficulty_level": "beginner",
"expiration_date": "07/07/2022",
"progress": null,
"developer": null,
"contractor": {
"name": "Kika06",
"email": "kisaa87@gmail.com",
"cnpj": "16.466.789/0000-00"
}
}
freeladev.com/api/job/info/<job_id>
Response
{
"id": 63,
"name": "Project with python",
"description": "a website about astronomy, using python, react, java, flask, springboot",
"price": 3000.0,
"difficulty_level": "beginner",
"expiration_date": "Sun, 12 Dec 2021 23:59:00 GMT",
"progress": null,
"developer": null,
"contractor": {
"name": "Rubens",
"email": "rubesns89@gmail.com",
"cnpj": "97.789.087/1245-09"
}
}
freeladev.com/api/job
Response
{
"name": "SpaceBlog",
"description": "a website about astronomy",
"price": 3000,
"difficulty_level": "beginner",
"expiration_date": "12/12/2021 23:59",
"progress": "ongoing"
}
freeladev.com/api/job/info/<job_id>
Response
{
"name": "SpaceBlog",
"description": "a website about astronomy",
"price": 3000,
"difficulty_level": "beginner",
"expiration_date": "12/12/2021 23:59",
"progress": "ongoing"
}
If it's a developer using the route it'll also return:
{
"contractor": {
"name": "Rubens",
"email": "rubesns89@gmail.com",
"cnpj": "97.789.087/1245-09"
}
}
If it's a contractor using the route it'll also return if there's already a developer assigned to the job:
{
"developer": "Thiago Camargo",
"developer_email": "tiago32@gmail.com",
"developer_birthday": "01/01/1998"
}
freeladev.com/api/job/update/<job_id>
Body json can contain: "name", "description", "price", "difficulty_level", "expiration_date" e "developer: email"
Request
{
"developer": "vi32@gmail.com"
}
_Response_
{
"name": "SpaceBlog",
"description": "a website about astronomy",
"price": 3000,
"difficulty_level": "beginner",
"expiration_date": "12/12/2021 23:59",
"progress": "ongoing",
"developer": {"name": "Filipe Ramos",
"email": "filipe43@gmail.com",
"birthdate": "01/01/1998"}
}
freeladev.com/api/job/delete/<job_id>
Response
NO CONTENT, 204
freeladev.com/api/developers/jobs
Response
[
{
"name": "FishWorld",
"description": "a website about fishing",
"price": 4000,
"difficulty_level": "begginer",
"expiration_date": "06/06/2021 23:59",
"progress": "completed",
"contractor": {"name": "Thiago Almeida" "email": "thiagoi43@gmail.com",
"cnpj": "10.332.532/0002-09"}
},
{
"name": "SpaceBlog",
"description": "a website about astronomy",
"price": 3000,
"difficulty_level": "beginner",
"expiration_date": "12/12/2021 23:59",
"progress": "ongoing",
"contractor": {"name": "Thiago Almeida" "email": "thiagoi43@gmail.com",
"cnpj": "13.339.532/0001-09"}
}
]
freeladev.com/api/contractor/jobs
Response
[
{
"name": "Developers hub",
"description": "a website about programming",
"price": 15000,
"difficulty_level": "advanced",
"expiration_date": "08/08/2021 23:59",
"progress": "completed",
"developer": {
"name": "Filipe Ramos",
"email": "filipe43@gmail.com",
"birthdate": "01/01/1998"
}
}
]
freeladev.com/api/contractors/jobs?progress=None&page=1&per_page=2
Response
[
{
"id": 1,
"name": "SpaceBlog",
"description": "a website about astronomy",
"price": 3000.0,
"difficulty_level": "beginner",
"expiration_date": "07/07/2023",
"progress": null,
"developer": null
}
]