{"id":22955044,"url":"https://github.com/getrighhttt/retrofitcrudguide","last_synced_at":"2025-04-02T00:40:48.867Z","repository":{"id":132599159,"uuid":"588281761","full_name":"GetRighhttt/RetrofitCRUDGuide","owner":"GetRighhttt","description":"Another retrofit guide in Kotlin using Moshi.","archived":false,"fork":false,"pushed_at":"2024-02-15T19:35:53.000Z","size":179,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-07T16:16:23.686Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GetRighhttt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-01-12T18:55:10.000Z","updated_at":"2023-01-31T23:27:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"d1187e03-0e6e-40c0-a09d-6a2e6643a915","html_url":"https://github.com/GetRighhttt/RetrofitCRUDGuide","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetRighhttt%2FRetrofitCRUDGuide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetRighhttt%2FRetrofitCRUDGuide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetRighhttt%2FRetrofitCRUDGuide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetRighhttt%2FRetrofitCRUDGuide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GetRighhttt","download_url":"https://codeload.github.com/GetRighhttt/RetrofitCRUDGuide/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246735343,"owners_count":20825223,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-14T16:26:55.914Z","updated_at":"2025-04-02T00:40:48.842Z","avatar_url":"https://github.com/GetRighhttt.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RetrofitCRUDGuide\n#### A library which allows us to easily embed networking in our application.\n#### A type-safe HTTP client for Android.\n#### Make it simple to convert RESTFUL HTTP methods into methods you can execute in your application.\n\n#### Data Converters (Serializers)\n- Moshi\n- Gson\n- Jackson\n- Protobuf\n- Wire\n- Simple XML\n\n### Concurrency\n- Running multiple tasks simultaneously using one core processing Unit\n- #### Asynchronous - when those tasks run and do not block another thread from running i.e freeing up the main thread for its tasks/suspension - Android typically refreshes at 60 FPS. In order not to block the main thread, heavy work must be completed on a background thread, then sent back to main thread to update the UI.\n\n### Coroutines\n- The standard approach to concurrency and asynchronous programming in Android which focuses on suspending threads until work is finished, then continuing and resuming when finished.\n- Essentially work on a background thread as light weight tasks, but are not individually background threads themselves.\n\n\u003cbr\u003e\n\n# Overview\n\n### Internet Protocol Suite\n- Set of communication protocols that specifies how data should be packaged, addresed, routed, and received.\n- Called TCP/IP model\n- Examples: TCP, IP, DNS, DHCP, SSH, FTP, HTTP, HTTPS\n\n### Representational State Transfer(REST)\n- A set of rules or constraints when creating a web service that use HTTP methods\n- Web services that conform to these protocols are said to be RESTFUL\n- Most APIs that we use in Android are said to be RESTFUL\n\n### HTTP - Hypertext Transfer Protocol(HTTP) Secure(HTTPS)\n- Define a request/response protocol\n- Define how to communicate data between client and the server\n\n### HTTP Methods\n- Formats for procedures that a client request a web service to execute\n- Client Request consist of 3 parts: \u003cverb\u003e\u003caddress\u003e\u003cprotocol\u003e\n- Also adds in headers[metadata about the request] and a request body\n- Server response: \u003cprotocol\u003e\u003cresponse code\u003e\n- Safe: doesn't alter state of server\n- Idempotent: identical request can be made repeatedly with same effect\n  \n  #### Method Types(Most common)\n  - GET - reading data from server and returns a response body [safe and idempotent]\n  - POST - creating data on a server\n  - PUT - updating data on a server\n  - PATCH - updating a particular part of the data on a server\n  - DELETE - deleting data from server\n  - HEAD - fetching data but not returning response body [safe and idempotent]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetrighhttt%2Fretrofitcrudguide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetrighhttt%2Fretrofitcrudguide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetrighhttt%2Fretrofitcrudguide/lists"}