About REST (Representational State Transfer) — доклад Антона Богдана, архитектора ПО в команде портфеля проектов Enviance компании Softengi.
Видео доклада от автора можно посмотреть по адресу: http://youtu.be/XPHb2wqO40s
Презентация ответит на вопросы:
- что такое REST?
- характеристики, специфика и структура REST.
Архитектурные семинары Softengi - еженедельные встречи, на которые приглашаются ведущие разработчики/архитекторы Softengi и других компаний нашего консорциума Intecracy Group.
Все проведенные семинары мы записывали, и теперь хотим поделиться опытом и знаниями с такими же профессионалами.
Подписывайся на канал Softengi https://www.youtube.com/user/softengi/ и узнай первым о новых семинарах.
http://www.softengi.com
WebCamp: Developer Day: Архитектура Web-приложений: обзор современных решений...GeeksLab Odessa
Архитектура Web-приложений: обзор современных решений
Руслан Шевченко
О разных подходах к проектированию web-приложений и трендах в этой области, включая как и относительный мейнстрим, так и экзотические решения, которые могут быть интересны в будущем.
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dep...Uniface
Building Responsive Applications with Uniface: Deployment, part 3 or a 3 part series. In this presentation you will learn:
• Web Deployment Architecture
• Considerations
• Tomcat Servlet Engine Configuration
• Uniface Server Configuration
• Deployment Demo (View on our YouTube channel)
Webinar recording on: www.youtube.com/unifacesme
In this talk, Shubhra Kar from StrongLoop will cover best practices for securing APIs. He'll give an overview of how to integrate Passport, oAuth and social logins into your Node app. Also, presented will be user and login management, SSL termination, rate limiting and throttling plus reverse proxy.
WebCamp: Developer Day: Архитектура Web-приложений: обзор современных решений...GeeksLab Odessa
Архитектура Web-приложений: обзор современных решений
Руслан Шевченко
О разных подходах к проектированию web-приложений и трендах в этой области, включая как и относительный мейнстрим, так и экзотические решения, которые могут быть интересны в будущем.
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dep...Uniface
Building Responsive Applications with Uniface: Deployment, part 3 or a 3 part series. In this presentation you will learn:
• Web Deployment Architecture
• Considerations
• Tomcat Servlet Engine Configuration
• Uniface Server Configuration
• Deployment Demo (View on our YouTube channel)
Webinar recording on: www.youtube.com/unifacesme
In this talk, Shubhra Kar from StrongLoop will cover best practices for securing APIs. He'll give an overview of how to integrate Passport, oAuth and social logins into your Node app. Also, presented will be user and login management, SSL termination, rate limiting and throttling plus reverse proxy.
Managing JavaScript Dependencies With RequireJSDen Odell
Learn how to manage and dynamically load JavaScript code files and their dependencies in a robust, scalable way within your large web sites and applications using the RequireJS library.
Node.JS is a popular server-side JavaScript framework for handling real-time and distributed data processing. In this session you'll learn what Node.JS is, how it works under the hood, and what scenarios it's useful for. You'll also learn how to deploy it to Windows Azure and manage it inside of IIS 7.
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...Uniface
Building Responsive Applications with Uniface: Development (Part 2 of 3). In this webinar you will learn:
• Dynamic Server Page (DSP) Coding Recap
• User Interface Techniques
• Demo WebStart Application
• Code Walkthrough (View on our YouTube channel)
The Uniface Lectures are an ongoing series of free monthly technical webinars that cover a wide range of useful topics. In this Lectures webinar on Application & Infrastructure Security we cover the following topics:
• Introduction
• Tomcat hardening
• Closing remarks
Full webinar video recording can also be found on: youtube.com/unifacesme
the 5 layers of web accessibility - Open Web Camp IIDirk Ginader
Dirk Ginader, part of the Yahoo! Accessibility Taskforce, will talk about the “5 Layers of Web Accessibility”. He extents the commonly known 3 layers model consisting of HTML, CSS and JavaScript with 2 new layers for more accessibility. He shows how easy it can be to make a website or web application more accessible by following simple rules.
see:
http://openwebcamp.org/agenda/#5_layers_of_accessibility
Spout - Building a RESTful web app with Angular.js and BEAR.SundayRichard McIntyre
Spout is a RESTful CMS created with Angular.js and BEAR.Sunday, we are just getting started but here is your your chance to get involved in a new CMS project.
В октябре мы в Softengi отмечаем два месяца с момента публикации первого видео с Архитектурных семинаров Softengi "About REST" на YouTube.
Уже опубликованы видео на тему:
- About REST https://www.youtube.com/watch?v=XPHb2wqO40s
- Mobile Web Apps. jQuery Mobile https://www.youtube.com/watch?v=R8TXKrW_sUE
- AutoTest Refactoring https://www.youtube.com/watch?v=jta0yTPzaSE
- Разработка Web-приложений на Angular JS https://www.youtube.com/watch?v=oTXxrmIxo8Y
Самое время подвести первые итоги в виде красивых цифр, и проанонсировать, что нашим подписчикам ожидать дальше.
Не забудь подписаться на наш канал https://www.youtube.com/user/softengi и первым получай новые видео.
Softengi's 9 Ways To Fail Your IT Project In The Outsourcing Journal Special ...Softengi
This article will reveal nine ways to become an enemy of IT services provider or IT department in your company, bringing eventually your IT project to failure. However, there still exists an escape way from any issue, so nine ways to save the situation will also be offered.
Managing JavaScript Dependencies With RequireJSDen Odell
Learn how to manage and dynamically load JavaScript code files and their dependencies in a robust, scalable way within your large web sites and applications using the RequireJS library.
Node.JS is a popular server-side JavaScript framework for handling real-time and distributed data processing. In this session you'll learn what Node.JS is, how it works under the hood, and what scenarios it's useful for. You'll also learn how to deploy it to Windows Azure and manage it inside of IIS 7.
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...Uniface
Building Responsive Applications with Uniface: Development (Part 2 of 3). In this webinar you will learn:
• Dynamic Server Page (DSP) Coding Recap
• User Interface Techniques
• Demo WebStart Application
• Code Walkthrough (View on our YouTube channel)
The Uniface Lectures are an ongoing series of free monthly technical webinars that cover a wide range of useful topics. In this Lectures webinar on Application & Infrastructure Security we cover the following topics:
• Introduction
• Tomcat hardening
• Closing remarks
Full webinar video recording can also be found on: youtube.com/unifacesme
the 5 layers of web accessibility - Open Web Camp IIDirk Ginader
Dirk Ginader, part of the Yahoo! Accessibility Taskforce, will talk about the “5 Layers of Web Accessibility”. He extents the commonly known 3 layers model consisting of HTML, CSS and JavaScript with 2 new layers for more accessibility. He shows how easy it can be to make a website or web application more accessible by following simple rules.
see:
http://openwebcamp.org/agenda/#5_layers_of_accessibility
Spout - Building a RESTful web app with Angular.js and BEAR.SundayRichard McIntyre
Spout is a RESTful CMS created with Angular.js and BEAR.Sunday, we are just getting started but here is your your chance to get involved in a new CMS project.
В октябре мы в Softengi отмечаем два месяца с момента публикации первого видео с Архитектурных семинаров Softengi "About REST" на YouTube.
Уже опубликованы видео на тему:
- About REST https://www.youtube.com/watch?v=XPHb2wqO40s
- Mobile Web Apps. jQuery Mobile https://www.youtube.com/watch?v=R8TXKrW_sUE
- AutoTest Refactoring https://www.youtube.com/watch?v=jta0yTPzaSE
- Разработка Web-приложений на Angular JS https://www.youtube.com/watch?v=oTXxrmIxo8Y
Самое время подвести первые итоги в виде красивых цифр, и проанонсировать, что нашим подписчикам ожидать дальше.
Не забудь подписаться на наш канал https://www.youtube.com/user/softengi и первым получай новые видео.
Softengi's 9 Ways To Fail Your IT Project In The Outsourcing Journal Special ...Softengi
This article will reveal nine ways to become an enemy of IT services provider or IT department in your company, bringing eventually your IT project to failure. However, there still exists an escape way from any issue, so nine ways to save the situation will also be offered.
AutoTest Refactoring — доклад Антона Богдана, архитектора ПО в команде портфеля проектов Enviance компании Softengi.
Видео с докладом от автора можно посмотреть по ссылке: http://youtu.be/jta0yTPzaSE
Это история про инициативу внедрения лучших практик (например, шаблон PageObject ) в существующий код AutoTest-ов написаных на C# с использованием Telerik. Антон показывает, как он проводил code-refactoring со скриншотами и примерами кода.
Архитектурные семинары Softengi - еженедельные встречи, на которые приглашаются ведущие разработчики/архитекторы Softengi и других компаний нашего консорциума Intecracy Group.
Все проведенные семинары мы записывали, и теперь хотим поделиться опытом и знаниями с такими же профессионалами.
Подписывайся на канал Softengi https://www.youtube.com/user/softengi и узнай первым о новых семинарах.
http://www.softengi.com
Localize your business - Software Localization Services LocServSoftengi
148 920 hours of localization experience in total, 3 years of work, 8760 hours spent on localization tasks, 15 people engaged in process...this is all about LocServ team, a department of Softengi.
LocServ team specializes in localization of large corporate systems. They have their own unique approach to the applications localization using Localization Studio automated tool, saving both development and testing time. As a result the customer can reduce expenses on localization activities.
Разработка Web-приложений на Angular JS. Архитектурные семинары SoftengiSoftengi
Разработка Web-приложений на Angular JS — доклад Бориса Левицкого, архитектора ПО в команде портфеля проектов Enviance компании Softengi.
Видео с докладом от автора можно посмотреть по ссылке: http://youtu.be/oTXxrmIxo8Y
Презентация ответит на вопросы:
- что такое Angular?
- для чего он используется и что с ним можно делать?
- как работает Data-Binding?
- кастомные фильтры
- структура Angular приложения
Архитектурные семинары Softengi - еженедельные встречи, на которые приглашаются ведущие разработчики/архитекторы Softengi и других компаний нашего консорциума Intecracy Group.
Все проведенные семинары мы записывали, и теперь хотим поделиться опытом и знаниями с такими же профессионалами.
Подписывайся на канал Softengi https://www.youtube.com/user/softengi и узнай первым о новых семинарах.
http://www.softengi.com
SQL for Web APIs - Simplifying Data Access for API ConsumersJerod Johnson
From Nordic APIs Platform Summit 2019 - Stockholm, Sweden
As the data world evolves, businesses are moving more of their data out of databases and into SaaS applications. Despite the migration, SQL remains a ubiquitous language for data access, so much so that many SaaS applications and non-relational cloud data stores support SQL endpoints in their APIs. While these endpoints allow users to leverage SQL queries to easily request data, there are still costly challenges to overcome when it comes to processing and managing the returned data.
In this presentation, we'll showcase popular APIs that offer SQL endpoints, explore the benefits of providing customers SQL access, and cover how standards-based drivers enable SaaS integration and self-service data access through SQL.
Building production websites with Node.js on the Microsoft stackCellarTracker
Node.js on Windows, in production, may not be the most common configuration – but it’s immensely powerful with the help of edge.js, iisnode, and other open source projects. In fact, it’s a great tool for building highly performant, scalable front- and back-end websites on the Microsoft stack (IIS, .NET, SQL Server, etc).
In this talk, I’ll share some details, tips-and-tricks, and experiences building a production website on Windows, using CellarTracker – the world’s largest collection of community wine reviews and tools for cellar management – as an example.
This presentation was prepared for a Webcast where John Yerhot, Engine Yard US Support Lead, and Chris Kelly, Technical Evangelist at New Relic discussed how you can scale and improve the performance of your Ruby web apps. They shared detailed guidance on issues like:
Caching strategies
Slow database queries
Background processing
Profiling Ruby applications
Picking the right Ruby web server
Sharding data
Attendees will learn how to:
Gain visibility on site performance
Improve scalability and uptime
Find and fix key bottlenecks
See the on-demand replay:
http://pages.engineyard.com/6TipsforImprovingRubyApplicationPerformance.html
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)Pat Patterson
Why would anyone but the most pedestrian enterprise developer be interested in a data access protocol originally designed by Microsoft, implemented in XML and handed to OASIS for standardization? The Open Data Protocol, or OData for short, has evolved into a clean, RESTful interface for CRUD operations against data services. Alongside the usual enterprise suspects such as Microsoft, Salesforce and IBM, OData has been adopted by government and non-profit agencies to open up their data and make it accessible to the public. For developers wanting to consume data, or create their own OData services, there's no shortage of open source options, from Apache Olingo in Java to node-odata and ODataCpp. Whether you're accessing customer orders in SAP or the Whitehouse visitor book, you're going to need some OData smarts.
Service Discovery using etcd, Consul and KubernetesSreenivas Makam
Overview of Service Discovery and Service Discovery using etcd, Consul, Kubernetes and Docker. Presented at Open source meetup, Bangalore(http://www.meetup.com/Bangalore-Open-Source-Meetup/events/229763724/)
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)Red Hat Developers
JBoss EAP7 brings support for the most recent industry standards and technologies, including Java EE7, the latest edition of the premier enterprise development standard. This session will provide an overview of the major additions to Java EE7, and how your team can use these capabilities on the advanced EAP7 runtime to produce better applications with less code.
DSLing your System For Scalability Testing Using Gatling - Dublin Scala User ...Aman Kohli
The power of Gatling is the DSL it provides to allow writing meaningful and expressive tests. We provide an overview of the framework, a description of their development environment and goals, and present their test results.
Source code available https://github.com/lawlessc/random-response-time
Similar to About REST. Архитектурные семинары Softengi (20)
Extended Reality Solutions for Digital MarketingSoftengi
Check out this presentation from Softengi that shows how digital marketing has been forced to find new ways to approach its customers. Here, we are speaking about Extended Reality (XR), which includes Augmented (AR) and Virtual realities(VR) solutions for digital marketing. For example, AR mobile apps and games, virtual showrooms, AR games, virtual tours, web XR solutions. Find out more about how these technologies can change the digital marketing ecosystem forever.
Intecracy Group is one of the leading professional groups of companies specialized in project and business consulting, the development of complex software solutions and project integration management of software solutions for corporate clients, governmental agencies, NGOs and startups.
Основы OLAP. Вебинар Workaround в SoftengiSoftengi
16 декабря 2014 года сообщество Workaround в Softengi провело первый вебинар "Основы OLAP", докладчиком которого был Юрий Марков, архитектор решений с 15-летним опытом в ИТ.
О чем:
Данные != Информация
Хранилища информации как источник информации для принятия решений
Архитектура хранилищ данных
Реализация OLAP на примере Microsoft SQL Server
Для кого: разработчики баз данных, аналитики, IT-специалисты.
Организатор: семинары Workaround в Softengi. Стартовали в феврале 2014 года как закрытые Архитектурные семинары для сотрудников (https://www.youtube.com/user/softengi ). В октябре 2014 года стали открытыми семинарами Workaround (он же «костыль» или обходной прием) для разработчиков и архитекторов ПО.
Как оценить Тестировщика. Александра Ковалева, Testing Consultant в SoftengiSoftengi
Презентация Александры Ковалевой, консультант по тестированию компании Softengi, на семинаре для тестировщиков "Оценка в жизни тестировщика" от тренингового центра QAS Training Center, который прошел 27 ноября в пространстве Циферблат, Киев
Как оценить время на тестирование. Александр Зиновьев, Test Lead SoftengiSoftengi
Презентация Александра Зиновьева, Test Lead компании Softengi, на семинаре "Оценка в жизни тестировщика" от тренинговой центра QAS Training Center, который прошел 27 ноября в пространстве Циферблат, Киев.
Автоматизированный подход к локализации корпоративных приложенийSoftengi
Доклад Глеба Криштова, члена команды LocServ в Softengi, на конференции для специалистов по локализации ПО Loc Kit 2014.
Доклад ответит на вопрос - как локализовать приложение-"монстр" с миллионами строк кода за рекордный срок в 6 месяцев, сократив при этом расходы на локализацию в более чем три раза?
Глеб в докладе раскрывает секреты создания командой LocServ собственного решения Localization Studio, с какими трудностями столкнулась команда до и во время создания решения и какие проблемы можно решить с помощью LocStudio.
Scrum и пустота. Доклад Анатолия Кота, менеджера проектов Softengi, на Междун...Softengi
"Сегодня даже банки и госструктуры могут переходить от классических подходов к использованию гибких методологий разработки ИТ-проектов" - основной посыл доклада Анатолия Кота, менеджера проектов и программ компании Softengi, на III Международной конференции «Инновационные технологии и решения для современного банка – 2014» от Международного журнала "БанкирЪ".
Презентация отвечает на вопросы:
- в чем отличие классических и гибких методологий?
- в чем особенность гибкого подхода?
- почему Scrum?
Enviance Environmental ERP system:
- Facilitates data collection and management for the environmental protection;
- Is an element of sustainable development and corporate social responsibility;
- Monitors compliance with environmental regulatory standards.
Enviance environmental ERP system is already widely used in various industries:
* Energy;
* Oil and gas sector;
* Mining industry;
* Utilities sector (heat, electricity);
* Manufacturing;
* Chemical and pharmaceutical industry;
* Transport;
* Agriculture;
* Government & Public sector;
* Retail.
Softengi is a primary partner of Enviance company as well as the developer of solution right from the moment of its creation. Nowadays we are an official distributor of Enviance solution.
Александр Зиновьев, Test Lead портфеля проектов Enviance в Softengi в своей презентации рассказывает о тестировании веб-приложений на iPad - тема, которая является чрезвычайно актуальной сегодня в мире тестирования, где ПК быстро вытесняются мобильными устройствами. 21 век, технологии бегут вперед, ноутбуками уже никого не удивишь. Производители всяческих девайсов стремятся мобилизировать окружающий мир телефонами, планшетами. В ответ этому прогрессу множество компаний начинает выпускать мобильные версии своих продуктов: как с ними бороться тестировщику, на что необходимо обратить внимание в первую очередь и что стоит не упустить?
Постановка и улучшение Scrum процесса для группы проектов в компанииSoftengi
Доклад Виктора Беженара, Team Led компании Softengi, с международной конференции Lviv PM Day, 26 апреля 2014 года.
- Что мешает организациям начать использовать гибкие методологии и почему это сложно?
- Преобразование методологий разработки портфеля проектов к Scrum методологии с помощью ЕТС (enterprise transition community - сообщество по изменениям на предприятии):
* наш путь
* его пересечение с моделью Майка Кона и работа по модели
* обязанности и методы работы ЕТС
Softengi Software Development Company ProfileSoftengi
Softengi is a Ukrainian IT outsourcing service provider, which made its start in 1995, with more than 150 IT professionals daily implementing the business needs of our customers all over the world.
The company is The 2014 Global Outsourcing 100 ranked outsourcer, a member of Intecracy Group IT-consortium and Microsoft Gold certified partner.
Softengi's main competencies are outsourcing software development, establishment of development centers, outsourcing of IT business processes, IT consulting, development of solutions for business (based on Microsoft SharePoint), as well as providing customers its personnel for specific projects (IT-outstuffing).
Among Softengi’s customers there are such world-known companies as Enviance Inc. (cooperating with McDonalds, DuPont, Walmart, Chevron and FujiFilm), Ingersoll-Rand, the Boeing Company, Peterbilt Inc., PZU, Zeppelin and others.
Our exclusive value is “Inspired software engineering” – Softengi makes thoughtful solutions, being totally focused on customer’s expectations and turning into reality the business dreams of our clients.
Путь к трассировке требований: от идеи к инструменту. SQA-Days 15Softengi
Доклад Дарьи Костюк на конференции SQA-Days 15 в Москве.
Доклад о том, как тестировщики, самостоятельно выработали подходы и инструменты для работы с требованиями. Доклад будет интересен тестировщикам, в чьих компаниях нет аналитиков или есть необходимость работать с требованиями самостоятельно.
Доклад Александры Ковалевой, Test Lead в QA Service, Softengi, Украина.
В презентации представлен симбиоз теории планирования и практического опыта компании QA Service в оценке трудозатрат на тестирование.
Руководители отдела тестирования, ведущие тестировщики узнают:
Чем отличаются стратегические, тактические и оперативные планы? - Что такое планирование с точки зрения тестировщика?
Кто в отвечает за планирование трудозатрат на тестирование?
Какие существуют методы оценки?
Всегда ли имеет смысл детальное планирование и оценка?
Подводные камни планирование сроков тестирования и связь с другими активностями проекта.
Как начать внедрение системы планирования и оценки «снизу»?
Тестировщикам доклад поможет посмотреть на оценку сроков с точки зрения менеджмента и ответить на вопросы:
Как я оцениваю свои задачи? Как это делают другие? Можно ли что-то улучшить?
Как заставить лида перестать спрашивать о сроках?
Чем отличаются трудозатраты на выполнение задачи и сроки завершения задачи. Как сдавать задачи в срок?
Softengi - Business Process Automation based on Microsoft SharePoint PlatformSoftengi
Softengi offers comprehensive solutions for business-processes automation based on Microsoft SharePoint platform. The solutions allow to automate business-processes both inherent for the majority of enterprises and specific ones for a definite industry.
Microsoft SharePoint is a Web application platform developed by Microsoft. SharePoint can be used to provide intranet portals, document & file management, collaboration, social networks, extranets, websites, enterprise search, and business intelligence. By default, SharePoint has a Microsoft Office-like interface, and it is closely integrated with the Office suite. According to Microsoft, SharePoint is used by 78% of Fortune 500 companies.
4 reasons to outsource software development, outstuffing, mobile application development and other services to Ukrainian IT company.
We know what we say - we have implemented 70 software development projects and various outstuffing services at Softengi software development company.
This is a presentation by Dada Robert in a Your Skill Boost masterclass organised by the Excellence Foundation for South Sudan (EFSS) on Saturday, the 25th and Sunday, the 26th of May 2024.
He discussed the concept of quality improvement, emphasizing its applicability to various aspects of life, including personal, project, and program improvements. He defined quality as doing the right thing at the right time in the right way to achieve the best possible results and discussed the concept of the "gap" between what we know and what we do, and how this gap represents the areas we need to improve. He explained the scientific approach to quality improvement, which involves systematic performance analysis, testing and learning, and implementing change ideas. He also highlighted the importance of client focus and a team approach to quality improvement.
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
The Art Pastor's Guide to Sabbath | Steve ThomasonSteve Thomason
What is the purpose of the Sabbath Law in the Torah. It is interesting to compare how the context of the law shifts from Exodus to Deuteronomy. Who gets to rest, and why?
How to Split Bills in the Odoo 17 POS ModuleCeline George
Bills have a main role in point of sale procedure. It will help to track sales, handling payments and giving receipts to customers. Bill splitting also has an important role in POS. For example, If some friends come together for dinner and if they want to divide the bill then it is possible by POS bill splitting. This slide will show how to split bills in odoo 17 POS.
Operation “Blue Star” is the only event in the history of Independent India where the state went into war with its own people. Even after about 40 years it is not clear if it was culmination of states anger over people of the region, a political game of power or start of dictatorial chapter in the democratic setup.
The people of Punjab felt alienated from main stream due to denial of their just demands during a long democratic struggle since independence. As it happen all over the word, it led to militant struggle with great loss of lives of military, police and civilian personnel. Killing of Indira Gandhi and massacre of innocent Sikhs in Delhi and other India cities was also associated with this movement.
6. Uniform interface
◦ Identification of resources (URI)
◦ Manipulation of resources through these
representations
◦ Self-descriptive messages
◦ Hypermedia as the engine of application
state (A.K.A. HATEOAS)
6
7. Then you will get:
Performance, scalability, simplicity,
modifiability, visibility, portability, and
reliability.
7
10. POST /appointmentService.asmx
◦ <openSlotRequest date = "2010-01-04" doctor =
"mjones"/>
HTTP/1.1 200 OK
◦ <openSlotList>
◦ <slot start = "1400" end = "1450“ status=“open”>
◦ <doctor id = "mjones"/>
◦ </slot>
◦ <slot start = "1600" end = "1650“ status=“booked”>
◦ <doctor id = "mjones"/>
◦ </slot>
◦ </openSlotList>
10
11. POST /doctors/mjones/appointments/
◦ <openSlotRequest date = "2010-01-04“/>
HTTP/1.1 200 OK
◦ <openSlotList>
◦ <slot start = "1400" end = "1450“ status=“open”/>
◦ <slot start = "1600" end = "1650“ status=“booked”/>
◦ </openSlotList>
11
12. GET /doctors/mjones/appointments/?date=20100104
HTTP/1.1 200 OK
◦ <openSlotList>
◦ <slot start = "1400" end = "1450“ status=“open”/>
◦ <slot start = "1600" end = "1650“ status=“booked”/>
◦ </openSlotList>
12
13. GET /doctors/mjones/appointments/?date=20100104
HTTP/1.1 200 OK
<openSlotList>
<slot start = "1400" end = "1450“ status=“open”>
<link rel=“slots/book” uri=“1400”/>
<slot/>
<slot start = "1600" end = "1650“ status=“booked”>
<link rel=“slots/move” uri=“1600”/>
<link rel=“slots/cancel” uri=“1600”/>
<slot/>
</openSlotList>
13
14. It’s very hard to be fully REST-style
compatible.
Most of modern REST API implementations
(Flickr api, Twitter api, Google calendar api)
are just Level 1 and Level 2.
Specs based on REST:
◦ WebDav protocol
◦ Odata protocol (designed for Entity Framework)
14
16. ◦ /workflows/
◦ /workflows/<workflow Id>/ - bad
◦ /workflows/<workflow Id>-<workflow Name>/ - good
◦ /workflows/<workflow Name>/ - okay
16
17. Permanent. Should not be changed with time.
No special chars or file extensions (.php,
.aspx) if they are not meaningful.
Context friendly.
◦ /users/current/details
vs. /users/user-anton/details
◦ /forecasts/cambridge/today
may redirects to, say, /forecasts/cambridge/2009-04-26
17
18. URI should be human readable and easily guessed.
Each part should be meaningful. All URI parts together should be
good nested, and help visualize the site structure.
◦ /cars/alfa-romeos/gt
Nouns, not verbs.
Resource Names: prefer to use lower-case and hyphen instead of
spaces.
◦ /tasks/by-a-new-car
Resource IDs: prefer to use additional meaning prefix.
◦ /tasks/task-17
◦ /conversations/conversation-{id}/todo-list-{id}/todo-{id}
18
19. /workflows/
◦ GET – Get a list (?)
◦ POST - Create
201 (Created), Location:<new url>
/workflows/SomeItem
◦ GET - Read
◦ PUT - Update
◦ DELETE - Delete
◦ PATCH – Partial update
19
20. You should introduce your own WEB-Methods.
Examples:
/workflows/SomeItem
<OPERATION> - Non-standard operations
BOOK
BUY
CALCULATE
LOCK
RENT
… .etc
from WebDav:
/workflows/SomeItem
MOVE
Destination: <new url>
COPY
Destination: <new url>
20
22. Less Db identifiers
More names and URLs
Human readable
No .Net/Java specifics:
◦ type: “MyNamespace.Workflow”
URL for hierarchies
WebDav - for file systems.
◦
22
28. Option #3: SQL
◦ Separate functionality
◦ Require of supporting public schema & security!
◦/sql?q=SELECT * FROM
workflows WHERE name=My
AND type=system AND date <
2007&page=1&pagesize=20
28
29. /sql?q=SELECT …
SELECT *
FROM workflows
WHERE name=My AND type=system AND date < 2007
Parsing
Validating
Transforming
Paging
SELECT TOP 20 w.id, w.name, w.type, cfv.[Field1]
FROM workflows w
INNER JOIN permissions p
ON p.id = p.objectId AND p.userId= <userId>
INNER JOIN customfieldvalue cfv
ON p.id = cfv.objectId AND cfv.name = “Field1”
WHERE name=My AND type=system AND date < 2007
29
30. Send user-password with each request (like
Basic authentication)
◦ REST-way style
◦ Not always practical
Session ID in header (implemented)
◦ Authorization: RESTAPI realm=“<Session ID>”
Auth. Cookie (implemented)
Auth. Cookie of main Web UI (implemented)
30
31. By URL
◦ api/ver1/*
By header
◦ X-Rest-Api-Version: 1
By mime-type
◦ Accept: application/vnd.restapiv1+json;
◦ Accept: application/vnd.restapi+json; version=1;
31
35. Well defined standard
Complex format
Meta Describer: WSDL
Not intended to be human readable
Excellent support in most IDEs (stub
generation)
Hard to call from JavaScript
Each service – separate and independent item
◦ Auth.asmx
◦ Workflow.asmx
35
36. Not standardized - is a style
Conforms to REST style
Lead to design human readable API:
◦ URL, names, serialized types
Bad support in most IDEs (problems with subs
generation)
Easy to call from JavaScript
Popular
Each service are not separate – solid api:
◦ /sessions/
◦ /processes/workflows/
◦ /processes/tasks/
36
37. REST – it’s not spec, it’s architectural style
◦ It’s an art!
Leverage HTTP!
URL, Headers, Mime, Accepts
Human readable URLs, XML and JSON !
37
Кто не слышал про REST?
Кто не только слышал но и знает что такое рест?
Может для кого-то это будет сюрпризом - REST это не вебсерсисы, это не спецификация - это архитектурный стиль распределенных систем.
Понятие REST ввел Рой Филдинг в своей докторской диссертации. Он является одним из авторов HTTP и URI.
Он выделил определенный стиль или подход распределенной системы WWW, и назвал его REST.
Если распределенная система хочет хочет следовать REST стилю - то она должна выполяться следующие требования.
Взамен выполнения таких требований - общая стоимость системы понизиться. Также, у такой системы легко достичь следующих важных качеств: Быстродействие, маштабирование, расширяемость, доступность, отказоустойчивость, гипкость.
Сейчас давайте перейдем к практическому примеру применения REST - в Web Services.
До этого мы говорили что WWW уже следует rest стилю. Web Sevices обычно базируються на WWW, так в чем же отличие?
Отличие заключаеться в том что распределенная система может использовать элементы WWW (HTTP) как, к примеру, транспорт и при этом НЕ следовать REST.
Так делают SOAP WebServices.
Потому, для выявления уровня соответсвия системы REST стилю - существует так называемая "Модель Зрелости Ричардсона".
Вот она на илюстрации.
Зачастую её используют для определения соответствия Web-Services REST стилю. Тоесть далее мы будем илюстрировать примеры на уровне HTTP протокола.
На нулевом уровне - мы используем HTTP как транспорт. Так обычно поступает SOAP, также он может использовать и другой транспорт - smpt, даже UPD тд.
На примере не показано но даже в самом XML сообщении есть и место для хедеров, HTTP хедеры не используються.
Здесь мы вводим адресацию, использую URL.
Здесь мы начинаем использовать HTTP Methods - например, GET - для Readonly и POST для остальных. Это уже дает возможно кеширования на уровне сервера, прокси-сервера или клиента.
Здесь мы добавляем hyper-text. В данном случае - для избавления клиента от необходимости строить URL, перемещая логику на сервер.
Большинство существующих вебсервисов имеет 1 или 2 уровень.
Хорошими примерами успешного примения REST стиля в Webservices можно считать спецификации WebDav. и к примеру ODATA. О них по -позже.