A REST API follows the REST architectural style and uses common HTTP methods like GET, POST, PUT, DELETE and HEAD to perform operations on resources. Resources are uniquely identified by URIs and manipulated through their representations. The API exposes resources and related operations through a standardized interface to simplify and decouple client-server interactions.
Presented by Nikola Vasilev on SkopjeTechMeetup 7.
Representational state transfer (REST) can be thought of as the language of the Internet. Now with cloud usage on the rise, REST is a logical choice for building APIs that allow end users to connect and interact with cloud services. This talk will deliver more insight into the challenges on building and maintaining good and clean RESTful APIs.
The document discusses various features that are important for a robust REST API beyond basic REST principles. These include data modeling, error handling, paging, querying, and batch processing. It also covers API manageability topics like security, rate limiting, analytics, and monitoring. Finally, it provides an overview of REST principles and compares REST to other API styles.
Best Practices for Architecting a Pragmatic Web API.Mario Cardinal
This presentation teach how to design a real-world and pragmatic web API. It draws from the experience Mario Cardinal have gained over the years being involved architecting many Web API. This presentation begins by differencing between a Web and a REST API, and then continue with the design process. We conclude with the core learnings of the session which is a review of the best practices when designing a web API. Armed with skills acquired, you can expect to see significant improvements in your ability to design a pragmatic web API.
The document provides guidelines and best practices for designing RESTful APIs, including:
- Using JSON over XML and making the API stateless and secure.
- Following conventions for HTTP verbs and status codes.
- Keeping data structures consistent and handling data with modern frameworks.
- Providing comprehensive documentation for data types, methods, and samples.
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...Jitendra Bafna
The document discusses API and RAML design best practices and guidelines that were presented at a MuleSoft meetup. It covers REST API design best practices like using nouns in URIs, HTTP verbs to define actions, versioning APIs, and status codes. It also discusses RAML design best practices like using plural nouns, sub-resources to represent relations, and URI structure. The agenda includes talks on these topics and a networking session.
Over the past decade, REST has become the standard (yet a fuzzy one) for designing web APIs. It offers some great ideas, such as stateless servers and structured access to resources. However, REST APIs have shown to be too inflexible to keep up with the rapidly changing requirements of the clients that access them.
A REST API follows the REST architectural style and uses common HTTP methods like GET, POST, PUT, DELETE and HEAD to perform operations on resources. Resources are uniquely identified by URIs and manipulated through their representations. The API exposes resources and related operations through a standardized interface to simplify and decouple client-server interactions.
Presented by Nikola Vasilev on SkopjeTechMeetup 7.
Representational state transfer (REST) can be thought of as the language of the Internet. Now with cloud usage on the rise, REST is a logical choice for building APIs that allow end users to connect and interact with cloud services. This talk will deliver more insight into the challenges on building and maintaining good and clean RESTful APIs.
The document discusses various features that are important for a robust REST API beyond basic REST principles. These include data modeling, error handling, paging, querying, and batch processing. It also covers API manageability topics like security, rate limiting, analytics, and monitoring. Finally, it provides an overview of REST principles and compares REST to other API styles.
Best Practices for Architecting a Pragmatic Web API.Mario Cardinal
This presentation teach how to design a real-world and pragmatic web API. It draws from the experience Mario Cardinal have gained over the years being involved architecting many Web API. This presentation begins by differencing between a Web and a REST API, and then continue with the design process. We conclude with the core learnings of the session which is a review of the best practices when designing a web API. Armed with skills acquired, you can expect to see significant improvements in your ability to design a pragmatic web API.
The document provides guidelines and best practices for designing RESTful APIs, including:
- Using JSON over XML and making the API stateless and secure.
- Following conventions for HTTP verbs and status codes.
- Keeping data structures consistent and handling data with modern frameworks.
- Providing comprehensive documentation for data types, methods, and samples.
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...Jitendra Bafna
The document discusses API and RAML design best practices and guidelines that were presented at a MuleSoft meetup. It covers REST API design best practices like using nouns in URIs, HTTP verbs to define actions, versioning APIs, and status codes. It also discusses RAML design best practices like using plural nouns, sub-resources to represent relations, and URI structure. The agenda includes talks on these topics and a networking session.
Over the past decade, REST has become the standard (yet a fuzzy one) for designing web APIs. It offers some great ideas, such as stateless servers and structured access to resources. However, REST APIs have shown to be too inflexible to keep up with the rapidly changing requirements of the clients that access them.
What is REST?
What is RESTful Webservices
HTTP-REST Request Basics
HTTP-REST Vocabulary
Authentication (OAuth)
OAuth 2.0 Web Server Flow
REST APIs using Apex REST
Resources
This document provides an overview of API testing using Rest Assured. It discusses what an API and REST API are, including REST principles. It also outlines common data formats like JSON and XML used in APIs. The document then covers tools for manual and automated API testing, including Rest Assured. It provides an example code snippet and discusses the speaker's background testing finance projects.
Test in Rest. API testing with the help of Rest Assured.Artem Korchevyi
Presentation for Autumn QC meetup 2018 (UA, Ivano-Frankivsk) about testing REST Api with demo example how to develop tests. Project here - https://github.com/Antracot/TestInRest
The document provides guidance on best practices for API design, including supporting platform independence and service evolution. It describes design principles for RESTful APIs using HTTP, including organizing APIs around resources identified by URIs, using HTTP methods to define operations on resources, and exchanging representations of resources using media types. The document also discusses using hypermedia links, asynchronous operations, versioning APIs, and other design considerations.
Basics of API Design and development. After the presentation, we developed a python flask-based app that you use to remind yourself anything via an api https://github.com/oquidave/reminderme
The document discusses REST (REpresentational State Transfer), an architectural style for building distributed systems. It covers REST concepts like resources, representations, URIs, HTTP methods, caching, and versioning. It provides guidance on designing RESTful APIs, including determining resources, supported methods, and return codes. Content negotiation and tools for testing REST APIs are also mentioned.
This document discusses REST APIs and how to attack them. It begins by explaining what REST APIs are and how they map CRUD operations to HTTP verbs like GET, POST, PUT, DELETE. It then covers REST architecture constraints like using resources and representations. The document outlines how to interact with APIs through requests and responses. It provides examples of enumeration, injection, authentication vulnerabilities and how to test authorization, rate limiting, SSL and information disclosure. It concludes with discussing cross-site request forgery attacks on REST APIs.
APIs are important for integrating external and internal customers, enabling partners, and building business logic that can be used across different platforms and applications. This document discusses REST principles for API design including giving resources IDs, linking resources, using standard methods, supporting multiple representations, and making requests stateless. It also covers topics like ROA vs SOA, REST vs SOAP, adoption trends, authentication, versioning, and common anti-patterns.
Postman is an API development platform that allows users to design, test, and monitor APIs. It provides a simple interface for creating API requests and testing suites. Key features include importing and exporting API collections, setting authentication parameters, and tracking HTTP response codes. The document demonstrates how to use Postman's interface to send sample GET, POST, PUT, and DELETE requests and view responses. It also lists common response codes like 200, 401, 403, and 500 and explains when each would occur.
The APEX REST API allows developers to integrate Force.com applications using HTTP requests and expose custom Apex logic as RESTful web services. Key features include CRUD operations on objects, authentication via OAuth or session ID, and built-in JSON/XML serialization. Developers can define custom endpoints using Apex classes annotated with @RestResource and HTTP methods like @HttpGet to retrieve and @HttpPost to create resources. Best practices include following a URI convention, using "with sharing", and enabling classes for user profiles that need access.
The never-ending REST API design debate -- Devoxx France 2016Restlet
The document discusses best practices for REST API design, including:
1) Using nouns instead of verbs for endpoints, and plural resource names instead of singular. It also recommends snake_case formatting.
2) Properly using HTTP status codes like 201 Created, 202 Accepted, 204 No Content, and providing helpful error responses.
3) Supporting features like pagination, filtering, sorting, searching, and caching responses with headers like ETag and Last-Modified.
4) Discussing approaches for API versioning in the URL, custom headers, or accept headers. The importance of hypermedia and discoverability is also emphasized.
These were prepared to teach the module "Emerging Technologies" for the 3rd year Undergraduates of the Asia Pacific Institue of Information Technology, Colombo-2, Sri Lanka (Remotely)
The Query Service is the new platform solution for querying a variety of data sources. The goal of Query Service is that administrators can configure a metadata description of the data source that can then be used by end users without detailed knowledge of the underlying data source. This session explains how to configure Query Service data sources and use them with the RESTful API or component collection.
Covers topics like RestApi, Authentication, Authorization, Cacheability, Advantage of RestApi over SOAP and some basics regarding Open Data Protocol(OData).
This presentation covers basics of RESTful webservices. I have prepared it by reading different online tutorials. One of them is java brains video tutorial. Hope this helps some one.
If any one needs examples mentioned in the slides, please contact me.
This document discusses web scraping using PHP. It provides an overview of HTTP requests like GET and POST, libraries for making requests like cURL and PEAR HTTP Client, parsing responses, and best practices for web scraping applications.
This document discusses best practices for designing RESTful web services. It begins by defining REST as an architectural style for distributed hypermedia systems, rather than a protocol or standard. The document outlines the constraints and principles of RESTful design, including client-server architecture, statelessness, cacheability and a uniform interface. It then evaluates several common approaches to building web APIs in terms of how well they follow REST principles. The document argues that an API designed according to REST principles, using hypermedia and self-descriptive messages, results in a loosely coupled and scalable design.
The rising complexity and cost of managing legacy travel distribution systems are leading many travel companies today to adopt a REST (REpresentational State Transfer) architectural style because it provides standardized resources that enable precise interaction with other REST systems. The panelists will discuss the fundamental shift in application design required to begin thinking in terms of resources rather than objects and methods and how the OpenTravel 2.0 specification is being designed to provide a common XML resource model for the travel industry.
Lunacloud's Compute RESTful API - Programmer's GuideLunacloud
This document provides a programmer's guide to accessing Lunacloud's compute resources via a RESTful API. It describes how to perform operations like obtaining server lists, starting/stopping servers, creating/deleting servers, managing firewall rules and images, and more. The guide covers RESTful API basics, HTTP methods, data formats, and provides a reference of specific API calls organized by resource type and operation. Code samples and instructions for testing requests are also included.
Arcadian Learning a Team of 50 Year industrial Expertise provide professional Training in Java Development. Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise level Web Applications and Web Services - on any kind of deployment platform.
"Generics+Decodable serving your API-client"ITCP Community
Creating handy abstraction for API-client. Making your networking code clean and straightforward from app to app.
Основные тезисы:
- Поговорим о Decodable. Найдется ли ему место в условиях реального проекта?
- Networking в приложениях. Популярные решения.
- Generic-запросы и попытка сделать универсальный метод для выполнения любого реквеста.
- Немного про обработку ошибок.
- Выводы. Стоило ли?
"You shall not pass : anti-debug methodics"ITCP Community
How to save you app from hacking? We will discuss a protection mechanisms and ways to hack them.
Основные тезисы:
- Основы LLDB;
- Способы защиты от нежелательного дебага вашего приложения;
- Оценка эффективности этих способов;
- Способы обхода приведенных методик;
- Обфускация кода и другие полезные практики защиты;
- Небольшое демо по взлому:)
Weitere ähnliche Inhalte
Ähnlich wie "Best Practices for Designing a Pragmatic RESTful API
What is REST?
What is RESTful Webservices
HTTP-REST Request Basics
HTTP-REST Vocabulary
Authentication (OAuth)
OAuth 2.0 Web Server Flow
REST APIs using Apex REST
Resources
This document provides an overview of API testing using Rest Assured. It discusses what an API and REST API are, including REST principles. It also outlines common data formats like JSON and XML used in APIs. The document then covers tools for manual and automated API testing, including Rest Assured. It provides an example code snippet and discusses the speaker's background testing finance projects.
Test in Rest. API testing with the help of Rest Assured.Artem Korchevyi
Presentation for Autumn QC meetup 2018 (UA, Ivano-Frankivsk) about testing REST Api with demo example how to develop tests. Project here - https://github.com/Antracot/TestInRest
The document provides guidance on best practices for API design, including supporting platform independence and service evolution. It describes design principles for RESTful APIs using HTTP, including organizing APIs around resources identified by URIs, using HTTP methods to define operations on resources, and exchanging representations of resources using media types. The document also discusses using hypermedia links, asynchronous operations, versioning APIs, and other design considerations.
Basics of API Design and development. After the presentation, we developed a python flask-based app that you use to remind yourself anything via an api https://github.com/oquidave/reminderme
The document discusses REST (REpresentational State Transfer), an architectural style for building distributed systems. It covers REST concepts like resources, representations, URIs, HTTP methods, caching, and versioning. It provides guidance on designing RESTful APIs, including determining resources, supported methods, and return codes. Content negotiation and tools for testing REST APIs are also mentioned.
This document discusses REST APIs and how to attack them. It begins by explaining what REST APIs are and how they map CRUD operations to HTTP verbs like GET, POST, PUT, DELETE. It then covers REST architecture constraints like using resources and representations. The document outlines how to interact with APIs through requests and responses. It provides examples of enumeration, injection, authentication vulnerabilities and how to test authorization, rate limiting, SSL and information disclosure. It concludes with discussing cross-site request forgery attacks on REST APIs.
APIs are important for integrating external and internal customers, enabling partners, and building business logic that can be used across different platforms and applications. This document discusses REST principles for API design including giving resources IDs, linking resources, using standard methods, supporting multiple representations, and making requests stateless. It also covers topics like ROA vs SOA, REST vs SOAP, adoption trends, authentication, versioning, and common anti-patterns.
Postman is an API development platform that allows users to design, test, and monitor APIs. It provides a simple interface for creating API requests and testing suites. Key features include importing and exporting API collections, setting authentication parameters, and tracking HTTP response codes. The document demonstrates how to use Postman's interface to send sample GET, POST, PUT, and DELETE requests and view responses. It also lists common response codes like 200, 401, 403, and 500 and explains when each would occur.
The APEX REST API allows developers to integrate Force.com applications using HTTP requests and expose custom Apex logic as RESTful web services. Key features include CRUD operations on objects, authentication via OAuth or session ID, and built-in JSON/XML serialization. Developers can define custom endpoints using Apex classes annotated with @RestResource and HTTP methods like @HttpGet to retrieve and @HttpPost to create resources. Best practices include following a URI convention, using "with sharing", and enabling classes for user profiles that need access.
The never-ending REST API design debate -- Devoxx France 2016Restlet
The document discusses best practices for REST API design, including:
1) Using nouns instead of verbs for endpoints, and plural resource names instead of singular. It also recommends snake_case formatting.
2) Properly using HTTP status codes like 201 Created, 202 Accepted, 204 No Content, and providing helpful error responses.
3) Supporting features like pagination, filtering, sorting, searching, and caching responses with headers like ETag and Last-Modified.
4) Discussing approaches for API versioning in the URL, custom headers, or accept headers. The importance of hypermedia and discoverability is also emphasized.
These were prepared to teach the module "Emerging Technologies" for the 3rd year Undergraduates of the Asia Pacific Institue of Information Technology, Colombo-2, Sri Lanka (Remotely)
The Query Service is the new platform solution for querying a variety of data sources. The goal of Query Service is that administrators can configure a metadata description of the data source that can then be used by end users without detailed knowledge of the underlying data source. This session explains how to configure Query Service data sources and use them with the RESTful API or component collection.
Covers topics like RestApi, Authentication, Authorization, Cacheability, Advantage of RestApi over SOAP and some basics regarding Open Data Protocol(OData).
This presentation covers basics of RESTful webservices. I have prepared it by reading different online tutorials. One of them is java brains video tutorial. Hope this helps some one.
If any one needs examples mentioned in the slides, please contact me.
This document discusses web scraping using PHP. It provides an overview of HTTP requests like GET and POST, libraries for making requests like cURL and PEAR HTTP Client, parsing responses, and best practices for web scraping applications.
This document discusses best practices for designing RESTful web services. It begins by defining REST as an architectural style for distributed hypermedia systems, rather than a protocol or standard. The document outlines the constraints and principles of RESTful design, including client-server architecture, statelessness, cacheability and a uniform interface. It then evaluates several common approaches to building web APIs in terms of how well they follow REST principles. The document argues that an API designed according to REST principles, using hypermedia and self-descriptive messages, results in a loosely coupled and scalable design.
The rising complexity and cost of managing legacy travel distribution systems are leading many travel companies today to adopt a REST (REpresentational State Transfer) architectural style because it provides standardized resources that enable precise interaction with other REST systems. The panelists will discuss the fundamental shift in application design required to begin thinking in terms of resources rather than objects and methods and how the OpenTravel 2.0 specification is being designed to provide a common XML resource model for the travel industry.
Lunacloud's Compute RESTful API - Programmer's GuideLunacloud
This document provides a programmer's guide to accessing Lunacloud's compute resources via a RESTful API. It describes how to perform operations like obtaining server lists, starting/stopping servers, creating/deleting servers, managing firewall rules and images, and more. The guide covers RESTful API basics, HTTP methods, data formats, and provides a reference of specific API calls organized by resource type and operation. Code samples and instructions for testing requests are also included.
Arcadian Learning a Team of 50 Year industrial Expertise provide professional Training in Java Development. Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise level Web Applications and Web Services - on any kind of deployment platform.
Ähnlich wie "Best Practices for Designing a Pragmatic RESTful API (20)
"Generics+Decodable serving your API-client"ITCP Community
Creating handy abstraction for API-client. Making your networking code clean and straightforward from app to app.
Основные тезисы:
- Поговорим о Decodable. Найдется ли ему место в условиях реального проекта?
- Networking в приложениях. Популярные решения.
- Generic-запросы и попытка сделать универсальный метод для выполнения любого реквеста.
- Немного про обработку ошибок.
- Выводы. Стоило ли?
"You shall not pass : anti-debug methodics"ITCP Community
How to save you app from hacking? We will discuss a protection mechanisms and ways to hack them.
Основные тезисы:
- Основы LLDB;
- Способы защиты от нежелательного дебага вашего приложения;
- Оценка эффективности этих способов;
- Способы обхода приведенных методик;
- Обфускация кода и другие полезные практики защиты;
- Небольшое демо по взлому:)
Менторская сессия для junior разработчиков #1
Программирование сильно шагнуло в перед за годы своего существования, но даже в современном программировании нам приходится возращаться к парадигмам и технологиям, которые уже считались устаревшими. Мы обсудим существующие парадигмы, разберемся в чем принципиальная разница, поймем когда какая более эффективна.
О спикере: Dmitry Moskalenko [CТО at WOXAPP]
● Опыт разработчика - 8 лет (web, Android, IoT)
● Опыт СТО - 4 года
● Основные языки программирования - Python, PHP,
Java
● Хобби - Machine learning, Deep learning, IoT, crossfit
● Глава орг. комитета IT Clubs Project (iOS, JS, PHP)
● Был ментором в IT школе
Dnepr HR Club #1
Speaker - Olga Tarasevych [ HRD в EnglishDom - Английский по скайпу ]
Тема: "Лайфхаки группового собеседования: зачем и как применять"
Обсудим, как сэкономить время и повысить эффективность подбора, если нужно найти не одного, а 30-50 сотрудников одной и той же специальности в месяц. Расскажу нюансы групповых собеседований на примере вакансии преподавателя английского языка в EnglishDom.
О спикере:
Ольга Тарасевич, HRD в EnglishDom - онлайн-школа английского языка. 8 лет в сфере HR, занимаюсь подбором, адаптацией, корпоративной культурой, мотивацией и обучением.
Бла бла-бла поговорить или структура “неструктурированного” интервьюITCP Community
Dnepr HR Club #1
Speaker - Dmitriy Polaykov [Recruiter and Human Resource Manager]
Тема: Cтруктура “неструктурированного” интервью
«Поговорим, о том, как можно перевести формальное собеседование в диалог, не упустив главного – информативности. Обсудим, стоит ли задавать вопросы “в лоб” или все же завуалированность эффективнее?»
О спикере:
Дмитрий Поляков - 10 лет в сфере HR и Recruiting, 8 лет в IT Recruiting.
Воркшоп "Метрики – ваши скрытые друзья и помощники"
"В бизнесе, есть понятия, которые необходимо отслеживать, оперируя цифрами:
- как и чем оценить то, насколько вы замедлились?
- как понять, что сотрудник на новом месте справляется?
- как понять, что команда движется по намеченному плану?
- как разобраться, что появилась какая-то проблема (до того как она станет слишком очевидной)?
Ответ один – метрики Вам в помощь!"
Кому будет интересен этот воркшоп?
- Руководители проектов, Product manager-ы
- тим лидеры и скрам мастера
- основатели стартапов
О спикере:
Anna Lavrova – успешный PM, уже больше 9 лет, сертифицированный SAFe Agilist и Scrum Master.
Воркшоп "Не все святой скрам"
"Давно уже установленный факт, что методики, которые применялись ранее, в современном мире сверхбыстрого обмена информацией теряют свою эффективность. Более того, непрозрачная работа внутри компании может приносить Вам убытки и давать Вашим конкурентам дополнительные преимущества."
Какие вопросы будут рассмотрены?
- какие фреймворки и инструмены используют в XXI веке?
- как выбрать подходящий для Вас фреймворк?
- как необходимо рушить старые и внедрять новые практики в вашем повседневном рабочем процессе?
Спикер - Anna Lavrova – SAFe Agilist, Scrum Master
Dnepr IT PM Club #11
Speaker - Angelina Linskaya [PM в IT-департаменте компании БаДМ]
https://www.linkedin.com/in/angelina-linskaya-92236186/
Тема: "Что такое «самоорганизующаяся команда» и мое видение как это работает"
Основные тезисы:
- Самоорганизующаяся команда — это миф или реальность»?
- Откуда взялось это понятие и что за ним стоит?
- Какие условия нужны для того, чтобы самоорганизующаяся команда действительно заработала?
О спикере:
Более 5 лет опыта как Project Manager и Business Analyst в сфере IT. Основное направление работы Enterprise проекты: разработка и внедрение EAM, ERP, MES, MRP, CRM систем.
Dnepr IT PM Club #11
Speaker - Vladimir Semenov [Project Manager at Apriorit Inc.]
https://www.linkedin.com/in/vladimir-semenov-pmp-121a08a9/
Тема: "Управление содержанием, ошибки и best practices"
Основные тезисы:
- Что такое содержание проекта
- Инструменты, артефакты и процессы
- Место управления содержанием в жизненном цикле разработки
- Как сформировать оптимальный набор практик для разных проектов и заказчиков
О спикере:
PM в компании Apriorit, 5 лет опыта работы в IT Project Management. Основное направление работы - высоконагруженные клинет-серверные приложения
Dnepr Marketing Club #1
Speaker - Roman Slavka [CMO в Poster - автоматизация кафе и ресторанов]
Тема: "Таргетированная реклама в Facebook"
"Поговорим о том, как настроить таргетированную рекламу в фейсбук, как найти максимально подходящую аудиторию в ручном режиме, разницу в конверсии и стоимости лида в зависимости от таргетинга, страны, формата рекламы."
О спикере:
Роман Славка — CMO в Poster — облачная система автоматизации для кафе и ресторанов. 8+ лет занимается онлайн маркетингом для различных сфер, от e-commerce до b2b продуктов.
Финансовое планирование бюджета IT-компанииITCP Community
Спикер - Yulia Ilina, директор тренингового агентства "SIMPLE", тренер по управлению и продажам, более 10 лет опыта в бизнесе.
- от 5-7 предприятий в месяц в индивидуальном консалтинге,с 2004 года, прирост показателей эффективности компании от 15 до 25% процентов в течение первого месяца консультирования.
Грамотное финансовое планирование – залог спокойствия и уверенности руководителя компании за то, что средств хватит всегда и на Основные потребности компании и на Развитие. Мы будем рассматривать все статьи Расходной и Доходной части, которые следует учитывать Руководителю IT - компании для финансового планирования. Рассмотрим одну из методик очень простого фин. планирования, которая применима в IT сегменте, для существования компании в плановом, а не в форс-мажорном режиме.
Dnepr UI/UX Club #3
Speaker - Illarion Karnaukh [Сo-owner at Moohii]
Тема: “Вам упаковать?”
"Поговорим об упаковке продукта, вспомним немного историю с чего все начиналось и откуда появилась иконка “корзинки”. Какими визуальными и техническими навыками пользоваться, чтобы клиент “сделал клик”. Зачем сейчас круто упаковывать продукт. А также, что будет дальше."
О спикере: Илларион Карнаух - дизайнер, Co-owner Moohii.com
Портфолио:
https://moohii.com/
https://dribbble.com/moohii
Dnepr UI/UX Club #3
Speaker - Ilya Kozlov [Founder at Sho.digital]
Тема : “Клиент всегда П***(В/Р?)”
Поговорим про этику общения между творческой группой и заказчиком.
Для ДИЗАЙНЕРА:
Менеджмент и структура общения с клиентом:
- как сразу понять, что клиент мудак;
- что на самом деле от вас нужно клиенту;
- как определять стоимость работы;
- составление ТЗ;
- правки правки;
- как рассчитываться за работу;
- защита себя от рисков.
Для КЛИЕНТА:
- как общаться клиенту с дизайнером
- как выбрать исполнителя
- какие вводные давать
- как контролировать работу
- мотивация и штрафы
- как не обидеть творческую душу
О спикере:
Илья - основатель агенства Sho.digital (http://sho.digital/), участвовал в создании брендинга Ресторана "Поплавок". В 18 лет создал свой дизайнерский кальян (https://www.behance.net/gallery/43865397/HUV-Hookah)
Занимается веб-дизайном и брендингом, продюсирует проекты (начиная от нейминга и заканчивая созданием сайтов и медиа материалов). Портфолио: https://www.behance.net/ikzlv
Dnepr IT Sales Club #14
Speaker - Natalya Ustimenko [Head of Marketing at eSputnik.com - Система Автоматизации Маркетинга]
https://www.linkedin.com/in/natalia-ustimenko-894b08127/
Тема: "Общение с клиентами на автопилоте"
"Расскажу, как с помощью автоматических емейл-рассылок выстроить грамотное и персонализированное общение с каждым клиентом."
О спикере:
Наталья влюблена в email-маркетинг с 2012 года. Автор более 250 статей, посвящённых емейл-маркетингу. Лектор в академии IMT, курс емейл-маркетинга. Докладчик в компании I-marketing, курс емейл-маркетинга. Лектор в академии Webpromoexperts, курс емейл-маркетинга.
Dnepr IT Sales Club #14
Speaker - Алина Богдан [Business Development Manager at V-Jet group - web & mobile solutions]
https://www.linkedin.com/in/a-bogdan/
Тема: "Контент решает все (почти)"
- Рассмотрим разновидности контента для привлечения клиентов и как быть на короткой ноге с пользователем;
- Рука руку моет: SEO + контент;
- Зачем нужен брендированный контент;
- Попробуем вместе выработать пару привычек создания хорошего контента.
О спикере:
Преподаватель английского языка в прошлом и частично настоящем. В IT сфере работаю чуть больше 3х лет. Первый опыт был в продуктовой американской компании Autoxloo. Участвовала в развитии и создании стартапов в роли SMM и частично SEO специалиста. Сейчас работаю в продажах услуг аутсорса, как Business Development Manager в компании v-jet group. Среди множества инструментов привлечения клиентов и партнёров основным считаю контент-маркетинг. Об этом и поговорим на докладе:)
Dnepr JS Club #2
Speaker - Дмитрий Васин [full stack разработчик Anadea Inc.]
Тема: "Electron: Разработка Desktop приложений используя HTML, CSS и JavaScript"
"В этом докладе я опишу возможность создания красивых, крос-платформенных десктопных приложений используя современный стек технологий и веб-инструменты. Я покажу как разработать десктопное приложение используя HTML, CSS, and JavaScript. Рассмотрим:
- что это и зачем это нужно
- как это работает
- плюсы такой разработки
- фатальные минусы
- итоги"
Dnepr JS Club #2
Speaker - Maks Nechesonov [Веб разработчик компании Agilie]
Тема: "It’s a test”
"В докладе я поделюсь своим опытом написания тестов и видением, какими они должны быть. Рассмотрим:
- виды тестирования и их краткое описание
- какие инструменты используются
- поговорим о мотивации для написания тестов
- как начать писать, если некому подсказать"
Dnepr UI/UX Club #2
Speaker - Евгений Голота [UI/UX дизайнер, founder at Grindstudio]
Тема: "Создание продукта с нуля"
"Поговорим о цикле создания продукта, как не сделать плохо и немного о психологии дизайнера."
О спикере: Евгений Голота, UI/UX дизайнер в YENA Software, 3 года в дизайне сайтов и приложений.
https://www.behance.net/golota_eg
Workshop "Storytelling in the Digital Age"
Speaker - Samuel P.N. Cook - основатель и креативный директор компании James Cook Media, которая находится в Варшаве. Бывший офицер армии США, профессор истории в Военной академии Соединенных Штатов в West Point. Миссия James Cook Media - помогать предпринимателям по всему миру использовать силу Сторителлинга в их бизнесе.
Dnepr UI/UX Club #2
Speaker - Danielito Con Sabor [Lead UI/UX Designer at Isky.solutions]
Тема: "Место карьеры в мире дизайна"
"Поговорим о проблемах карьерного роста в нише веб-дизайна и обсудим его подводные камни. На что ориентироваться и чего избегать."
О спикере: Педро Даниэль Кароль Степанов, Lead UI/UX Designer в iSky Solutions. За спиной 4 года дизайнерских скитаний, лендингов, логотипов, мокапов и самых разных заказчиков.
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...IJECEIAES
Medical image analysis has witnessed significant advancements with deep learning techniques. In the domain of brain tumor segmentation, the ability to
precisely delineate tumor boundaries from magnetic resonance imaging (MRI)
scans holds profound implications for diagnosis. This study presents an ensemble convolutional neural network (CNN) with transfer learning, integrating
the state-of-the-art Deeplabv3+ architecture with the ResNet18 backbone. The
model is rigorously trained and evaluated, exhibiting remarkable performance
metrics, including an impressive global accuracy of 99.286%, a high-class accuracy of 82.191%, a mean intersection over union (IoU) of 79.900%, a weighted
IoU of 98.620%, and a Boundary F1 (BF) score of 83.303%. Notably, a detailed comparative analysis with existing methods showcases the superiority of
our proposed model. These findings underscore the model’s competence in precise brain tumor localization, underscoring its potential to revolutionize medical
image analysis and enhance healthcare outcomes. This research paves the way
for future exploration and optimization of advanced CNN models in medical
imaging, emphasizing addressing false positives and resource efficiency.
Advanced control scheme of doubly fed induction generator for wind turbine us...IJECEIAES
This paper describes a speed control device for generating electrical energy on an electricity network based on the doubly fed induction generator (DFIG) used for wind power conversion systems. At first, a double-fed induction generator model was constructed. A control law is formulated to govern the flow of energy between the stator of a DFIG and the energy network using three types of controllers: proportional integral (PI), sliding mode controller (SMC) and second order sliding mode controller (SOSMC). Their different results in terms of power reference tracking, reaction to unexpected speed fluctuations, sensitivity to perturbations, and resilience against machine parameter alterations are compared. MATLAB/Simulink was used to conduct the simulations for the preceding study. Multiple simulations have shown very satisfying results, and the investigations demonstrate the efficacy and power-enhancing capabilities of the suggested control system.
artificial intelligence and data science contents.pptxGauravCar
What is artificial intelligence? Artificial intelligence is the ability of a computer or computer-controlled robot to perform tasks that are commonly associated with the intellectual processes characteristic of humans, such as the ability to reason.
› ...
Artificial intelligence (AI) | Definitio
Batteries -Introduction – Types of Batteries – discharging and charging of battery - characteristics of battery –battery rating- various tests on battery- – Primary battery: silver button cell- Secondary battery :Ni-Cd battery-modern battery: lithium ion battery-maintenance of batteries-choices of batteries for electric vehicle applications.
Fuel Cells: Introduction- importance and classification of fuel cells - description, principle, components, applications of fuel cells: H2-O2 fuel cell, alkaline fuel cell, molten carbonate fuel cell and direct methanol fuel cells.
Embedded machine learning-based road conditions and driving behavior monitoringIJECEIAES
Car accident rates have increased in recent years, resulting in losses in human lives, properties, and other financial costs. An embedded machine learning-based system is developed to address this critical issue. The system can monitor road conditions, detect driving patterns, and identify aggressive driving behaviors. The system is based on neural networks trained on a comprehensive dataset of driving events, driving styles, and road conditions. The system effectively detects potential risks and helps mitigate the frequency and impact of accidents. The primary goal is to ensure the safety of drivers and vehicles. Collecting data involved gathering information on three key road events: normal street and normal drive, speed bumps, circular yellow speed bumps, and three aggressive driving actions: sudden start, sudden stop, and sudden entry. The gathered data is processed and analyzed using a machine learning system designed for limited power and memory devices. The developed system resulted in 91.9% accuracy, 93.6% precision, and 92% recall. The achieved inference time on an Arduino Nano 33 BLE Sense with a 32-bit CPU running at 64 MHz is 34 ms and requires 2.6 kB peak RAM and 139.9 kB program flash memory, making it suitable for resource-constrained embedded systems.
2. Key requirements for the API
• It should use web standards where they make
sense
• It should be simple, intuitive and consistent
• It should be efficient, while maintaining balance
with the other requirements
3. The key principles of REST involve separating
your API into logical resources.
These resources are manipulated using HTTP
requests where the method (GET, POST,
PUT, PATCH, DELETE) has specific meaning.
4. RESTful principles provide strategies to handle CRUD
actions using HTTP methods mapped as follows:
• GET /tickets - Retrieves a list of tickets
• GET /tickets/12 - Retrieves a specific ticket
• POST /tickets - Creates a new ticket
• PUT /tickets/12 - Updates ticket #12
• PATCH /tickets/12 - Partially updates ticket #12
• DELETE /tickets/12 - Deletes ticket #12
5. There are no method naming
conventions to follow and the URL structure
is clean & clear.
7. • GET /tickets/12/messages - Retrieves list of messages for ticket
#12
• GET /tickets/12/messages/5 - Retrieves message #5 for ticket #12
• POST /tickets/12/messages - Creates a new message in ticket
#12
• PUT /tickets/12/messages/5 - Updates message #5 for ticket #12
• PATCH /tickets/12/messages/5 - Partially updates message #5 for
ticket #12
• DELETE /tickets/12/messages/5 - Deletes message #5 for ticket
#12
9. • An activate action could be mapped to a boolean
activated field and updated via a PATCH to the
resource
• PUT /gists/:id/star and DELETE /gists/:id/star
• Just do what's right from the perspective of the
API consumer and make sure it's documented
clearly
11. Result filtering, sorting &
searching
• GET /tickets?state=open - query parameter that
implements a filter
• GET /tickets?sort=-priority - Retrieves a list of
tickets in descending order of priority
• GET /tickets?q=return&state=open&sort=-
priority,created_at - Retrieve the highest priority
open tickets mentioning the word 'return'
14. An API that accepts JSON encoded POST, PUT & PATCH requests should
also require the Content-Type header be set to application/json or throw a
415 Unsupported Media Type HTTP status code.
JSON encoded POST, PUT & PATCH bodies
16. Rate limiting
• X-Rate-Limit-Limit - The number of allowed
requests in the current period
• X-Rate-Limit-Remaining - The number of
remaining requests in the current period
• X-Rate-Limit-Reset - The number of seconds left
in the current period
18. HTTP status codes
• 200 OK - Response to a successful GET, PUT,
PATCH or DELETE. Can also be used for a
POST that doesn't result in a creation.
• 201 Created - Response to a POST that results
in a creation. Should be combined with a
Location header pointing to the location of the
new resource
• 204 No Content - Response to a successful
request that won't be returning a body (like a
DELETE request)
19. • 400 Bad Request - The request is malformed,
such as if the body does not parse
• 401 Unauthorized - When no or invalid
authentication details are provided. Also useful to
trigger an auth popup if the API is used from a
browser
• 403 Forbidden - When authentication succeeded
but authenticated user doesn't have access to
the resource
20. • 404 Not Found - When a non-existent resource is
requested
• 405 Method Not Allowed - When an HTTP
method is being requested that isn't allowed for
the authenticated user
• 429 Too Many Requests - When a request is
rejected due to rate limiting
Важными, но не вбитыми в стену принципами построения АПИ является
- следование веб стандартам ( там где это имеет смысл)
- простота, интуитивность, целостность
- эффективность при соблюдении баланса с другими принципами
Самое замечательное в использовании http методов то, что вам не нужно использовать в своих адресах названия методов или действий которые вы хотите совершать с ресурсом. Все методы говорят сами за то действие которое должно быть описано в соответствующем эндпоинте.
Ключевым принципом REST является разделение вашего API на ресурсы и использование http методов в соотвествии с действиями, выполняемыми для этих ресурсов.
Ресурсы должны иметь имена существительные, они могут соответствовать моделям в вашей реализации, но это совсем не обязательно.
Например в качестве ресурсов могут быть использованы: ticket, user, group
После того как вы определились с ресурсами, вы должны понять какие действия будут совершаться с этими ресурсами и как они будут соотноситься с вашим API.
RESTful стратегия определяет использование crud действий в качестве следующих http методов
Еще один интересный вопрос использовать ли единственное число, или множественное в обозначении ваших ресурсов. Будьте проще. Простое правило применимо и тут, хотя ваш внутренний грамарнаци возможно скажет что не правильно получать один экземпляр ресурса с использованием множественного числа, но все же что бы сохранить общность лучше всегда использовать множественное число. Это сделает вашу жизнь и жизнь пользователей вашего API значительно проще. К тому же большинство современных фреймворков позволяет удобно реализовать /tickets и /tickets/12 в одном контроллере.
Но как же быть с отношениями ресурсов. Если отношение может существовать только в пределах конкретного ресурса, то и тут REST принципы вполне применимы
Если говорить о загрузке отношений вместе с обьектом, то, к примеру, библиотека franctal предлагает такой подход.Они предлагают описывать доступные для дополнения респонс объекты в качестве подключаемых include которые пользователь вашего api может запросить по собственному желанию, в зависимости от того нужны они ему или нет.
Что же насчет действий, который не вписываются в формат CRUD
Для этого случая существует несколько подходов.
Поменяйте действие так, что бы оно вписывалось в формат ресурса. Это работает для действий, не принимающих параметра. Например действие активации которое может находится только в двух логических состояниях может быть интерпретировано как PATCH к ресурсу.
Относитесь к действию как подресурсу например API гитхаба позволяет добавить и убрать звезду такими запросами
Иногда действительно нет другого способа представить действия в виде отношения к ресурсу. Например поиск по нескольким ресурсам. Это ОК, просто сделайте это удобно и убедитесь что реализация хорошо задокументированна
Несколько пунктов о которых не стоит забывать
Поскольку вашим приложением пользуются совершенно из разных мест мира не плохо бы шифровать ваш трафик и делать все запросы исключительно по https
Документация к вашему апи очень важный аспект написания самого апи, по возможности держите вашу документацию в актуальном состоянии. Своевременно обновляя ее вместе с релизами новых возможностей (или изменений) вашего API. Если вы поддерживаете публичное апи, не забывайте также поддерживать актуальный ченжлог, выписывая туда произошедшие, с API изменения и деприкейтед методы
Версионируйте ваше апи, это поможет быстрее разрабатывать новые фичи, а так же поможет не поломать работу со старыми, но измененными функциями. Есть несколько способов версионирования. Используя URL или header
Вообще говоря эти подходы можно смешивать, добиваясь более гибкой возможности работы с вашим API и возможности более плавного обновления и перехода к новым версиям для ваших пользователей.
Фильтрация, сортировка, поиск
Лучше всего держать ваше API как можно более простым и понятным, однако иногда требуется и получение более сложных, предобработаных результатов. Все эти три пункта могут быть реализованы используя параметры запроса скомпонованные и оформленные разными способами. Один из вариантов как они могут быть оформлены, такой.
Обновление и создание ресурса должны возвращать сам ресурс что бы не требовался повторный запрос данных
Только JSON
если кто-то еще интересовался xml, то кажется пришло время оставить его позади
JSON INPUT
Если вы следуете тому что рассказано ранее, то наверняка вы используете JSON в качестве output формата. Давайте быть последовательны, будем использовать JSON в качестве input формата.
Передача формой может быть уместна когда вы делаете простое API, однако когда на вход должен приходить достаточно большой, комплексный объект, JSON кажется подойдет для этого лучше.
Однако тут вынужден признать что я рассматриваю JSON как самый распространенный формат используемый на текущий момент. Конечно существуют альтернативы такие как BSON, MessagePack и другие. Однако я думаю большинство из нас все же пишет веб. А для веба чаще всего удобно иметь человеко-читаемый формат запросов и ответов, однако если для вас критически важна скорость и компактность конечно стоит посмотреть в их сторону.
Немного холивара если в качестве основного клиента вашего API будет JS то кажется имеет смысл использовать стиль принятый в JS а именно кемелкейс, тоже самое можно сказать если основной ваш клиент на каком-то другом языке то стоит использовать договор этого языка CamelCase для C # и Java, snake_case для Python и Ruby.
Немного наброса на вентилятор. На основании исследования проведенного в 2010 году снейк кейс на 20% легче для чтения чем кемел кейс. Что значит использования снейк-кейса увеличит читаемость вашего апи. Кроме того многие популярные JSON API уже используют снейк кейс
Рейт лимит
Для предотвращения абьюза часто использование апи ( особенно публичных) имеют ограничение на количество запросов. При превышении этого лимита имеет смысл возвращать HTTP status code 429 Too Many Requests
Однако очень полезно с каждым запросом возвращать заголовки, с информацией о том, сколько же осталось до прекращения свободного доступа к данным
Ошибки
Так же как обычные страницы предоставляют подробные описания ошибки, так и АПИ вполне может быть использовано для подробного пояснения что же собственно пошло не так в обработке запроса. Для описания таких ошибок часто используют такой формат.
Вместе с такими ошибками АПИ всегда должно возвращать адекватные коды ответа. Обычно оти коды разделяются на два типа 400е - ошибки обработки данных клиента и 500е - ошибки сервера.