π» Search & Automatic Deploys π»
Posted on Jun 6th, 2022
Todayβs Topics
- Implementing search, including Postgres full-text search
π― Project due on Thursday afternoon
Please include a README in your project repo. The README should be:
- written in Markdown
- include a link to your production application
- shave instructions for getting your application running locally, so that any developer could pull it down and run it. If your setup makes any assumptions about the environment (e.g., you have Python 3.10.2 installed locally), you should state them in the README.
Your README should include documentation for your APIβs available endpoints.
π If your project meets minimum requirements today, HUZZAH! That is awesome. You should be working on at least one additional or spicy feature.
π If your project does not yet meet minimum requirements, you should aim for meeting them by the end of the day Wednesday.
Note
Depending on how youβve constructed your API, you might have separate endpoints for all of the below, or you might have fewer endpoints (for instance, if you nested answers in the question detail endpoint, like questions/4/answers
). What matters is that you have endpoints that your front-end team can use to access this data, and they are documented in your README.
Requirements for QuestionBox, Back End
β οΈ Be sure to test that you have implemented permissions-checking correctly for these endpoints. For example, your API should not allow a user who is not the question-asker to mark an answer as accepted.
- token login, logout, and register (i.e., create a new user)
- list all questions
- list answers to a specific question
- show details about a specific question
- create a question if logged in
- create an answer to a question (if you are not the question owner) if logged in
- mark an answer as βacceptedβ (if you are the question owner)
- list of own questions for an authenticated user
- list of own answers for an authenticated user
- star/favorite questions or answers
- unstar/unfavorite questions or answers
- search questions (possibly both questions and answers)
- A README with endpoints documented
π Read | πΊ Watch | π§ Listen
- π Basic and Full-Text Search with Django and Postgres
- π If you want A LOT more detail about full-text search in Postgres and Django, this blog piece has you covered
- π Blog post with more on full-text search
- πΊ Search from the Ground Up -> DjangoCon 2019 video explaining search in detail
- πΊ Pretty Printed: How to Perform Full Text Searches in Django with Postgres
π Resources
@action
decorator in ViewSets
- DRF Docs: Marking extra actions for routing with the
@action
decorator - DRF Docs: Routing for extra actions
Filtering and search
- DRF - Filtering -> Pretty useful reference. Includes how to filter your output based on GET parameters, which you will want to do for using search terms.
- Django Docs: full-text search & the search lookup
- Django Docs: SearchVector -> Youβll need this if you want to search against more than a single field
π¦ Code & Notes
- DRF Library API
- Notes on Django Queries These are the same notes you may have seen at the beginning of the Phase. Iβm including them here for easy reference, as they show examples of queries and filters that might come in handy for search endpoints.